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

Développement SQL Server Discussion :

[SQL2005][SQL] Aide requete count a N et N-1


Sujet :

Développement 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][SQL] Aide requete count a N et N-1
    Bonjour tout le monde,

    J'ai besoin d'un peu d'aide pour une requete.

    Elle est ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT COUNT(*) AS [count], SUM(df.df_volume) AS [sum], [de].[decheterie_ID] AS [decheterie_ID], [fl].[flux_id] AS [flux_id] 
    FROM [depot] AS [d] 
    INNER JOIN [decheterie] AS [de] ON [d].[decheterie_ID] = [de].[decheterie_ID] 
    INNER JOIN [depotflux] AS [df] ON [d].[depot_ID] = [df].[depot_ID] 
    INNER JOIN [flux] AS [fl] ON [fl].[flux_id] = [df].[flux_ID] 
    WHERE YEAR(d.depot_jour) = 2012 GROUP BY [fl].[flux_id], [de].[decheterie_ID]
    Et donne un resultat comme ceci


    J'aimerais avoir deux colonnes supplémentaires avec count et sum sur l'année 2011.

    C'est possible ?

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    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
    WITH T AS
    (SELECT COUNT(*) AS NOMBRE, SUM(df.df_volume) AS SOMME, 
           de.decheterie_ID, fl.flux_id,
           YEAR(d.depot_jour) AS Y
    FROM   depot AS d 
           INNER JOIN decheterie AS de 
                 ON d.decheterie_ID = de.decheterie_ID 
           INNER JOIN depotflux AS df 
                 ON d.depot_ID = df.depot_ID 
           INNER JOIN flux AS fl 
                 ON fl.flux_id = df.flux_ID 
    GROUP BY fl.flux_id, de.decheterie_ID)
    SELECT decheterie_ID, flux_id, 
           T1.NOMBRE AS NOMBRE_2012, T1.SOMME AS SOMME_2012
           T2.NOMBRE AS NOMBRE_2011, T2.SOMME AS SOMME_2011
    FROM    T AS T1
            JOIN T AS T2
                  ON T1.decheterie_ID = T1.decheterie_ID
                     AND T1.flux_id = T2.flux_id
    WHERE   T1.Y = 2012
      AND   T2.Y = 2011;
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  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
    Merci pour ta réponse.

    Désolé mais j'ai une erreur a l’exécution :

    Msg*102, Niveau*15, État*1, Ligne*15
    Syntaxe incorrecte vers 'T2'.
    Merci encore

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Commencez par respecter la charte de postage : http://www.developpez.net/forums/d96...vement-poster/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    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
    Citation Envoyé par SQLpro Voir le message
    Commencez par respecter la charte de postage : http://www.developpez.net/forums/d96...vement-poster/

    A +
    Titre édité ...

    Merci

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Version de SQL Server ?????

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Essayez ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        SELECT de.decheterie_ID AS decheterie_ID
             , fl.flux_id       AS flux_id
             , COUNT(CASE WHEN dp.depot_jour >= '2011-01-01' AND dp.depot_jour < '2012-01-01' THEN 1            END) AS count_2011
             , SUM  (CASE WHEN dp.depot_jour >= '2011-01-01' AND dp.depot_jour < '2012-01-01' THEN df.df_volume END) AS sum_2011
             , COUNT(CASE WHEN dp.depot_jour >= '2012-01-01' AND dp.depot_jour < '2013-01-01' THEN 1            END) AS count_2012
             , SUM  (CASE WHEN dp.depot_jour >= '2012-01-01' AND dp.depot_jour < '2013-01-01' THEN df.df_volume END) AS sum_2012
          FROM depot            AS dp 
    INNER JOIN decheterie       AS de ON de.decheterie_ID = dp.decheterie_ID
    INNER JOIN depotflux        AS df ON df.depot_ID      = dp.depot_ID
    INNER JOIN flux             AS fl ON fl.flux_id       = df.flux_ID 
         WHERE dp.depot_jour >= '2011-01-01'
           AND dp.depot_jour <  '2013-01-01'
      GROUP BY de.decheterie_ID
             , fl.flux_id;

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Il manque juste une virgule dans ma requête. Quand vous avez une erreur il suffit de double cliquer sur cette erreur et cela vous donne approximativement la ligne ou celle d'après sur laquelle figure cette erreur !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. [SQL2005] Aide requete count
    Par lepiou dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/11/2012, 17h19
  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. [SQL] aide pour requete UPDATE SVP
    Par ganok dans le forum Langage SQL
    Réponses: 9
    Dernier message: 10/03/2005, 09h17
  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