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

SQL Oracle Discussion :

Requête avec Group BY


Sujet :

SQL Oracle

  1. #1
    Membre habitué
    Femme Profil pro
    Consultante BI
    Inscrit en
    Mars 2011
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultante BI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 236
    Points : 191
    Points
    191
    Par défaut Requête avec Group BY
    Bonjour ,

    Mon besoin est d'avoir le total de salaire brut par société et pas département.

    J'ai préparé une requete qui me permet d'avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
      MATRICULE     SALAIRE_BRUT        SOCIETE     ETABLISSEMENT
    je voudrais avoir comme résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                          TOTAL_SALAIRE
    SOCIETE 1            XXX
      ETAB11                X
      ETAB12               XX
    SOCIETE 2           XXXXX
      ETAB21               XXX
      ETAB22                XX

    Merci d'avance pour vos aides.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 100
    Points : 28 397
    Points
    28 397
    Par défaut
    Il s'agit là de mise en forme du résultat de la requête, qui est du domaine de l'application et no du langage SQL

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    Il s'agit là de mise en forme du résultat de la requête, qui est du domaine de l'application et no du langage SQL
    Moui je toruve ca un peu trop categorique, il y a des choses bien plus simples a faire directement dans la base, sans que ca ne consomme beaucoup plus de ressources.

    La par exemple, si ca avait ete plus clair on comprendrait mieux, mais group by roll-up pourrait convenir.
    (Chaque societe a x etablissements, et je veux la somme par societe et par etablissement)

    Au final, la BdD fait juste un petit calcul en plus, ca evite d'avoir des bugs dans le cas ou il faudrait rajouter du code pour refaire la somme cote client.
    Bref, tout comme la signature de McM

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 077
    Points
    8 077
    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
    WITH donnees as
    (
    	select 100 as MAT, 3000 as SAL, 'Soc1' as SOC, 'Siège' as ETAB FROM DUAL union
    	select 200 as MAT, 2200 as SAL, 'Soc1' as SOC, 'Usine1' as ETAB FROM DUAL union
    	select 300 as MAT, 2200 as SAL, 'Soc1' as SOC, 'Usine1' as ETAB FROM DUAL union
    	select 400 as MAT, 2500 as SAL, 'Soc1' as SOC, 'Usine2' as ETAB FROM DUAL union
    	select 500 as MAT, 2600 as SAL, 'Soc1' as SOC, 'Usine2' as ETAB FROM DUAL union
    	select 600 as MAT, 3000 as SAL, 'Soc2' as SOC, 'Siège' as ETAB FROM DUAL union
    	select 700 as MAT, 2600 as SAL, 'Soc2' as SOC, 'Usine1' as ETAB FROM DUAL union
    	select 800 as MAT, 2600 as SAL, 'Soc2' as SOC, 'Usine2' as ETAB FROM DUAL union
    	select 900 as MAT, 2600 as SAL, 'Soc2' as SOC, 'Usine2' as ETAB FROM DUAL
    )
    select SOC, ETAB, sum(sal) as Total_Salaire 
    from donnees
    group by soc, rollup(etab);
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SOC  ETAB   TOTAL_SALAIRE
    ---- ------ -------------
    Soc1 Siège           3000
    Soc1 Usine1          4400
    Soc1 Usine2          5100
    Soc1                12500
    Soc2 Siège           3000
    Soc2 Usine1          2600
    Soc2 Usine2          5200
    Soc2                10800

  5. #5
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 077
    Points
    8 077
    Par défaut
    Citation Envoyé par Rams7s Voir le message
    Moui je trouve çaun peu trop catégorique...
    Bien d'accord, ce cathéchisme dogmatique, appliqué sans discernement, conduirait à ne rien faire dans la base hormis de simples sélections.
    Si on va par là, un tri n'est-il pas une mise en forme ?

    Ce que le SGBD peut faire efficacement, et commodément, je ne vois pas de raison de m'en priver.

  6. #6
    Membre habitué
    Femme Profil pro
    Consultante BI
    Inscrit en
    Mars 2011
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultante BI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 236
    Points : 191
    Points
    191
    Par défaut
    Merci à tous et à Pomalaix

  7. #7
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    Ce que le SGBD peut faire efficacement, et commodément, je ne vois pas de raison de m'en priver.
    Au hasard : Répartition des charges ?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Points : 807
    Points
    807
    Par défaut
    Repartition des charges entre?
    Une appli developpe par une armee de gens avec le mot performance en tete (Oracle), et toutes les applis de pleins de developpeurs avec les mots "faut que ca marche" en tete? Sans compter que chacun va y aller a sa maniere pour faire la meme chose au final, avec des bugs possibles, des soucis de portabilite, etc.
    (Ceci dit, je dit pas que c'est sans bug chez oracle non plus, mais leur base de testeurs clients est plus grande)

    Je vous invite par ailleurs a regarder certaines nouveautees du SQL oracle sur la 11:
    http://docs.oracle.com/cd/E11882_01/...ql.htm#sthref3
    • LISTAGG : c'est de la presentation
    • PIVOT: c'est de la presentation aussi

    Sans compter qu'un SGBD gere bien le cache et donc la mutualisation, et que du coup ca risque tres fortement d'etre globalement plus economes en ressources pour tout le monde que si chaque programme java cree ses boucles for, instancie ses objets, etc.


    Et puis meme, le prix que ca coute, il y a interet a tout utiliser
    http://thehelsinkideclaration.blogsp...rvation-1.html

  9. #9
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    Par défaut
    Citation Envoyé par Rams7s Voir le message
    Une appli developpe par une armee de gens avec le mot performance en tete (Oracle)
    C'est bien de le croire, mais je ne serais pas aussi catégorique que vous sur le sujet <troll> sinon il n'y aurait pas de java dedans </troll>.

    Citation Envoyé par Rams7s Voir le message
    Repartition des charges entre ?
    Entre l'application et le serveur de base de données, ou dit autrement entre la couche de rémanence et la couche de présentation

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

Discussions similaires

  1. Syntaxe d'une requête avec GROUP
    Par gvdmoort dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/10/2006, 15h10
  2. Requête avec Group by sur Oracle 8i
    Par madina dans le forum Oracle
    Réponses: 14
    Dernier message: 16/06/2006, 12h41
  3. requête avec group by...
    Par JerBi dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/03/2006, 03h17
  4. Problème requête avec group by et distinct
    Par tomca dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/07/2005, 16h10
  5. requête avec group by
    Par Staron dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/11/2004, 16h30

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