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 :

[SQL2005] Aide requete count


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 98
    Par défaut [SQL2005] Aide requete count
    Bonjour tout le monde,

    J'ai une table simple avec ID | Date

    Je dois faire une requête avec le nombre d'ID par mois
    J'ai donc fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT count(*) as cpt, MONTH(m.date)
    FROM matable m
    GROUP BY MONTH(m.date)
    Le truc c'est que par exemple je n'ai pas d'enregistrement sur le mois de février, du coup ça n'est pas retourné par la requête.

    Comment faire pour avoir le résultat quand le count = 0 ?

    Merci

  2. #2
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    Faite une table des dates (ou plus exactement des mois dans votre cas)

    Ensuite vous n'avez plus qu'a faire une jointure externe entre votre table celle ci pour faire apparaître tous les mois...

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 98
    Par défaut
    J'étais justement en train d'essayer mais j'ai le meme soucis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    WITH 
    Mois (month_id, month_name) AS (
    	SELECT 1, 'Janvier'
    		UNION ALL
    	SELECT 2, 'Février'
    		UNION ALL
    	SELECT 3, 'Mars'
    		UNION ALL
    	SELECT 4, 'Avril'
    		UNION ALL
    	SELECT 5, 'Mai'
    		UNION ALL
    	SELECT 6, 'Juin'
    		UNION ALL
    	SELECT 7, 'Juillet'
    		UNION ALL
    	SELECT 8, 'Août'
    		UNION ALL
    	SELECT 9, 'Septembre'
    		UNION ALL
    	SELECT 10, 'Octobre'
    		UNION ALL
    	SELECT 11, 'Novembre'
    		UNION ALL
    	SELECT 12, 'Décembre'
    	)
     
    SELECT count(d.depot_ID) AS [value], m.month_id AS x
    FROM Depot d
    RIGHT JOIN Mois m ON MONTH(d.depot_jour) = m.month_id
    WHERE d.decheterie_ID = 24
    GROUP BY m.month_id
    value x
    51 2
    447 3
    136 4
    1679 5
    96 6
    122 7

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 98
    Par défaut
    Bon bah ca marche sans le where ce qui est logique

    Je ne vois pas de solution

  5. #5
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    C'est un LEFT JOIN qu'il vous faut...

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2005
    Messages : 98
    Par défaut
    Résolu avec;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    WITH 
    Mois (month_id, month_name) AS (
    	SELECT 1, 'Janvier'
    		UNION ALL
    	SELECT 2, 'Février'
    		UNION ALL
    	SELECT 3, 'Mars'
    		UNION ALL
    	SELECT 4, 'Avril'
    		UNION ALL
    	SELECT 5, 'Mai'
    		UNION ALL
    	SELECT 6, 'Juin'
    		UNION ALL
    	SELECT 7, 'Juillet'
    		UNION ALL
    	SELECT 8, 'Août'
    		UNION ALL
    	SELECT 9, 'Septembre'
    		UNION ALL
    	SELECT 10, 'Octobre'
    		UNION ALL
    	SELECT 11, 'Novembre'
    		UNION ALL
    	SELECT 12, 'Décembre'
    	)
     
    SELECT month_id as x, count(depot_id) as [value]
    FROM Depot d
    RIGHT JOIN Mois m  ON MONTH(d.depot_jour) = m.month_id
    WHERE decheterie_ID = 24 OR decheterie_ID IS NULL
    GROUP BY month_id
    ORDER BY month_id
    Merci pour le coup de main

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

Discussions similaires

  1. [SQL2005][SQL] Aide requete count a N et N-1
    Par lepiou dans le forum Développement
    Réponses: 8
    Dernier message: 17/10/2012, 14h12
  2. Aide requete count
    Par zzman dans le forum Requêtes
    Réponses: 5
    Dernier message: 26/07/2006, 11h10
  3. aide requete count
    Par zzman dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/07/2006, 13h39
  4. besoin d'aide -> requete sur 2 tables avec count()
    Par parksto dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/10/2005, 19h06
  5. Aide pour une requete ... "COUNT(*)"
    Par mechantebestiole dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/05/2004, 16h27

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