Affecter une valeur à certains champs d'une table [Résolu/Fermé]

Messages postés
129
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
25 mars 2019
- - Dernière réponse : pulls
Messages postés
129
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
25 mars 2019
- 9 janv. 2013 à 17:20
Bonjour,

je voudrais créé un vue si la table Enjeux. ma table Enjeux contient un champ date qui contient les dates des enjeux et un champ Montant qui contient les différentes valeurs.

je voudrais créé un champ qui renvoie la valeur 1 si la date correspond à un mardi ou un vendredi et la valeur 2 pour les autres jours . Voici ce que j'ai tapé pour afficher les jours à partir des dates.

SELECT     { fn DAYNAME(datecourse) } AS jour, valeur
FROM         dbo.tbControle


je ne parviens pas à insérer une condition dans la clause Select pour me renvoyer la valeur 1 s'il s'agit de vendredi et mardi et 2 s'il s'agit des autres jours .


Aidez moi s'il vous plait
Afficher la suite 

4 réponses

Messages postés
1265
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
139
0
Merci
Bonjour,
Je créerai un champ ID dans cette table, pour avoir un moyen d'identifier les lignes, ensuite je créé le champ qui aura 1 ou 2 suivant le jour de la semaine, puis j'exécute cette requête (ma table s'appelle csd_temp2, le champ identificateur 'ID', la date 'champ' et la valeur 1 ou 2 'test') :
declare @compteur int 
declare @id int

DECLARE db_cursor CURSOR FOR  
SELECT id FROM csd_temp2

OPEN db_cursor  
FETCH NEXT FROM db_cursor INTO @id 

WHILE @@FETCH_STATUS = 0 
BEGIN

if (select champ from csd_temp2 where ID = @id) in ('mardi', 'vendredi')
begin
	update csd_temp2 set test = 2 where ID = @id
end


FETCH NEXT FROM db_cursor INTO @id

END
CLOSE db_cursor  
DEALLOCATE db_cursor	

update csd_temp2 set test = 1 where test is null

Messages postés
129
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
25 mars 2019
2
0
Merci
Bonjour,

S'il vous plait j'ai l'impression que je ne me suis pas fait comprendre. Je n'ai pas l'intention de modifier ma table. Je veux créer une vue qui va être exploitée dans un tableau croisé dynamique sur Excel.

Voici mon problème:

J'ai la table Controle qui contient entre autre 2 champs: dateCourse et totalPercu.

J'ai créé un Vue qui me renvoie : la dateCourse, le totalPercu et le jour( jour de la semaine lié à la datecourse- de lundi à dimanche- comme suit:


SELECT     datecourse, { fn DAYNAME(datecourse) } AS jour, totalpercu
FROM         dbo.tbControle




Je voudrais ajouter un autre champ qui va s'appeler Code et qui va contenir la valeur 1 si le Jour est mardi ou vendredi et la valeur 2 pour les autres jour.

s'il vous plait est ce que ce champ Code peut être toujours ajouter dans la Clause SELECT ? c'est à dire ici:


SELECT     datecourse, { fn DAYNAME(datecourse) } AS jour, totalpercu, (..?.) as Code
FROM         dbo.tbControle



Si c'est possible comment procéder ? ou y a t-il une autre solution?

Merci
Messages postés
1265
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
139
0
Merci
Re,
Oui ce doit être possible, en utilisant CASE/WHEN.
Messages postés
129
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
25 mars 2019
2
0
Merci
merci

c'est résolu avec case/when