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 :

Requette Sum Croisé


Sujet :

Développement SQL Server

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Requette Sum Croisé
    Bonjour à tous,
    J'ai un petit problème de construction de requette et je ne sais si ce que je veux faire est possible ou pas. N'ayant pas trouvé mon bonheurs je poste là question et on véra bien ce que vous en dite.

    Alors voici les données du problème


    +-----------------------------------+
    |...................TABLE1.....................|
    +-----------------------------------+
    |.COL1.|.COL2.|.COL3.|.COL4.|.COL5.|
    +-----------------------------------+
    |.2006.|...1.....|...5....|...1....|...1....|
    |.2006.|...2.....|...6....|...1....|...0....|
    |.2006.|...3.....|...7....|...2....|...0....|
    |.2006.|...4.....|...8....|...2....|...0....|
    |.2007.|...1.....|...9....|...1....|...2....|
    |.2007.|...3.....|...8....|...3....|...0....|
    |.2008.|...5.....|...8....|...1....|...0....|
    |.2008.|...7.....|...9....|...4....|...3....|
    |.2008.|...2.....|...8....|...1....|...0....|
    |.2009.|...1.....|...1....|...1....|...0....|
    |.2009.|...3.....|...4....|...2....|...4....|
    |.2009.|...5.....|...2....|...3....|...5....|
    |.2009.|...5.....|...5....|...1....|...0....|
    |.2009.|...4.....|...3....|...1....|...0....|
    +-----------------------------------+

    +-------------+
    |.....TABLE2....|
    +-------------+
    |.COL1.|.COL2.|
    +-------------+
    |....1...|..ART..|
    |....2...|..BRT..|
    |....3...|..QRT..|
    |....4...|..ZER..|
    +-------------+
    Voici ce que je voudrais avoir comme résultat


    +-------------------------------------------------------------------+
    |.COL1.|.SUMCOL2.|.SUMCOL3.|.COUNTCOL5.|.ART.|.BRT.|.QRT.|.ZER.|
    +-------------------------------------------------------------------+
    |.2006.|......10.....|......26......|.........5.......|...3...|...7...|...0...|...0..|
    |.2007.|.......4......|......17......|.........9.......|...1...|...0..|...3...|...0...|
    |.2008.|......14.....|......25......|.........9.......|...7...|...0...|...0...|...7..|
    |.2009.|......18.....|......15......|.........6.......|..10...|...3..|...5....|..0...|
    +--------------------------------------------------------------------+

    SUMCOL2 = sum de COL2 groupé par COL1
    SUMCOL3 = sum de COL3 groupé par COL1
    COUNTCOL5 = sum de la COL3 si COL5 <> 0 groupé par COL1
    ART = sum de la colum 2 si COL4 = 1 jointure avec la table2 groupé par COL1
    BRT = sum de la colum 2 si COL4 = 2 jointure avec la table2 groupé par COL1
    QRT = sum de la colum 2 si COL4 = 3 jointure avec la table2 groupé par COL1
    ZER = sum de la colum 2 si COL4 = 4 jointure avec la table2 groupé par COL1
    J'ai beau retourné tous dans tous les sens mais je n'arrive jamais à avoir quelque chose de groupé.

    J'espère avoir été claire

    Si quelqu'un à une idée je suis preneur

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Réponce trouvé ;-)
    Voici la requette que je fait par contre elle ne construit pas dynamiquement les colonne des sommes de la table 2 si jamais on rajoute un enregistrement.
    Si quelqu'un à une idée je suis preneur..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT
    <div style="margin-left:40px">COL1,</div><div style="margin-left:40px">SUM(COL2),</div><div style="margin-left:40px">SUM(COL3),</div><div style="margin-left:40px">SUM(CAS WHEN COL5  > 0 THEN COL3 ELSE 0 END) AS COUNTCOL5,</div><div style="margin-left:40px">SUM(CAS COL4 WHEN 1 THEN COL2 ELSE 0 END) AS ART,</div><div style="margin-left:40px">SUM(CAS COL4 WHEN 2 THEN COL2 ELSE 0 END) AS BRT,</div><div style="margin-left:40px">SUM(CAS COL4 WHEN 3 THEN COL2 ELSE 0 END) AS QRT,</div><div style="margin-left:40px">SUM(CAS COL4 WHEN 4 THEN COL2 ELSE 0 END) AS ZER,</div>FROM TABLE1
    GROUP BY COL1

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 782
    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 782
    Points : 52 780
    Points
    52 780
    Billets dans le blog
    5
    Par défaut
    Il faut utiliser la fonction PIVOT... Mais comme c'est du cosmétique, cela n'a pas sa place sous forme de requête SQL !

    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/ * * * * *

Discussions similaires

  1. [CR9] Colorier les cellules d'un tableau croisé
    Par Koko22 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/11/2003, 16h57
  2. réseau cable croisé +réseau wifi
    Par Fala fala dans le forum Développement
    Réponses: 6
    Dernier message: 24/09/2003, 13h36
  3. Fonction 'SUM'
    Par X-Deus dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/06/2003, 08h22
  4. sum(XPATH) retourne NaN
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 19/03/2003, 13h48
  5. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18

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