IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

SUM(CASE WHEN THEN 1 ELSE 0 END) SUR PLUSIEURS LIGNES


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Médecin Département d'Information Médicale (DIM)
    Inscrit en
    Janvier 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Médecin Département d'Information Médicale (DIM)
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2009
    Messages : 115
    Points : 60
    Points
    60
    Par défaut SUM(CASE WHEN THEN 1 ELSE 0 END) SUR PLUSIEURS LIGNES
    Bonjour

    Je fais une requête du type suivant qui fonctionne:


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT A,B,SUM(CASE 
    WHEN (C<>0)THEN 1 ELSE 0 END)AS COLONNE1 ,
    SUM(CASE 
    WHEN (C=0)THEN 1 ELSE 0 END) AS COLONNE2
    FROM MATABLE
    GROUP BY A,B

    Je souhaiterais rajouter pour COLONNE1 et COLONNE2 la durée pour CHACUNE DES CONDITIONS:

    Si je fais comme cela:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT A,B,SUM(CASE 
    WHEN (C<>0)THEN 1 ELSE 0 END)AS COLONNE1 ,
    SUM(CASE 
    WHEN(C=0)THEN 1 ELSE 0 END) AS COLONNE2,
    SUM(DATEDIFF(DAY,DATE2,DATE1))
    FROM MATABLE
    GROUP BY A,B

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SUM(DATEDIFF(DAY,DATE2,DATE1))
    me compte le nombre de jours cumulés des 2 colonnes

    Comment faire pour afficher le nombre de jour pour quand C=0 ET pour quand C<>0

    Merci

  2. #2
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2011
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 118
    Points : 180
    Points
    180
    Par défaut
    Bonjour,

    La même chose que les 2 conditions précédentes mais sur datediff :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT A,B,
    SUM(CASE WHEN (C<>0)THEN 1 ELSE 0 END)AS COLONNE1 ,
    SUM(CASE WHEN(C=0)THEN 1 ELSE 0 END) AS COLONNE2,
    SUM(CASE WHEN (C<>0)THEN DATEDIFF(DAY,DATE2,DATE1) ELSE 0 END)AS DATEDIFF1 ,
    SUM(CASE WHEN(C=0)THEN DATEDIFF(DAY,DATE2,DATE1) ELSE 0 END) AS DATEDIFF2,
    SUM(DATEDIFF(DAY,DATE2,DATE1))
     
    FROM MATABLE
    GROUP BY A,B

  3. #3
    Membre du Club
    Homme Profil pro
    Médecin Département d'Information Médicale (DIM)
    Inscrit en
    Janvier 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Médecin Département d'Information Médicale (DIM)
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2009
    Messages : 115
    Points : 60
    Points
    60
    Par défaut
    Merci

    Tout bête...

    Quelquefois on tourne idiotement autour des choses

    Milles merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème case when then jpql
    Par hadmarin dans le forum Persistance des données
    Réponses: 0
    Dernier message: 08/09/2011, 10h31
  2. SUM(CASE WHEN. ET AFFICHAGE CONDITIONNEL
    Par Dr_No dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 29/08/2011, 17h26
  3. Hibernate HQL : CASE WHEN THEN
    Par hisoft dans le forum Autres
    Réponses: 3
    Dernier message: 12/04/2011, 21h31
  4. Equivalent "Select Case when then else end" sur Paradoxe
    Par Seuh.m dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/06/2006, 08h23
  5. Réponses: 5
    Dernier message: 31/10/2005, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo