Affecter une valeur à certains champs d'une table

Résolu
pulls Messages postés 160 Statut Membre -  
pulls Messages postés 160 Statut Membre -
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

  1. Morgothal Messages postés 1350 Statut Membre 184
     
    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
  2. pulls Messages postés 160 Statut Membre 3
     
    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
  3. Morgothal Messages postés 1350 Statut Membre 184
     
    Re,
    Oui ce doit être possible, en utilisant CASE/WHEN.
    0
  4. pulls Messages postés 160 Statut Membre 3
     
    merci

    c'est résolu avec case/when
    0