Affecter une valeur à certains champs d'une table

Résolu/Fermé
pulls Messages postés 136 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 13 septembre 2023 - 9 janv. 2013 à 09:20
pulls Messages postés 136 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 13 septembre 2023 - 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

4 réponses

Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
9 janv. 2013 à 10:23
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

0
pulls Messages postés 136 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 13 septembre 2023 3
9 janv. 2013 à 11:17
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
0
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
9 janv. 2013 à 12:10
Re,
Oui ce doit être possible, en utilisant CASE/WHEN.
0
pulls Messages postés 136 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 13 septembre 2023 3
9 janv. 2013 à 17:20
merci

c'est résolu avec case/when
0