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 :

Deux colonnes calculant la somme de deux sous-ensembles différents


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 36
    Points : 38
    Points
    38
    Par défaut Deux colonnes calculant la somme de deux sous-ensembles différents
    Bonjour à tous,
    Je bloque sur un problème.
    Je vous l'explique : je dois faire une requête, ac des jointure etc.. jusque l'a pas de problème.
    pour l'instant ma requête donne un certains nombre de doublon
    normal : la clef n'est pas complète et c'est fait exprès:

    Un nouvel acteur : Un fameux code rubriques.
    Maintenant je dois rajouter rajouter ds ma requête la somme de la colonne montant pour le code rubrique 1111. Facile je met en critère where code rubrique = 1111 je fais sum(montant) et tout en bas je regroupe avec toutes valeur de la requête (sélect a, b, c..) sauf bien entendu le code rubrique, bon la c'est easy rien de compliquer quand on pratique oracle.

    Là ou ça se corse c'est quand je dois rajouter une nouvelle valeur(un nouveaux champs ds mon sélect) ds ma requête: la somme des montant(comme ci avant) mais pour un code rubrique différent!!!! 2222 par exemple
    c'est comme si il y avait deux requête : une avec ds les critère "where code rubrique=1111" et une autre avec "where code rubrique= 2222"

    L'idée est de mettre Where code rubrique IN (1111,2222) ds les critère et de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select toto
    ,titi
    , sum(montant, coderubrique=1111)
    , sum(montant, coderubrique=2222) 
    for ... 
    where ..
    and code rubrique in(1111,2222) 
    group by toto, titi
    mais facile à dire...

    Quelqu’unaurait-il une idée, svp??
    J'ai pensé à la table dual, à partition by également et au fenêtrage, mais je dois avouer que je n'ai pas trouver de solution encore.

    Merci

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 36
    Points : 38
    Points
    38
    Par défaut
    J'ai résolu mon problème en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select 
    toto,
    titi,
    select sum() where rubrique=1111...,
    select sum() where rubrique=2222...,
    WHERE...
    Et j’enlève le group by.
    Donc
    Une autojointure..
    Si qqun a une manière plus classe et plus performante, alors je suis à votre écoute!

    Bon week end à tous

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select col_groupement,
    sum(case when ma_cond = 'X' then 1 end),
    sum(case when ma_cond = 'Y' then 1 end)
    from ma_table
    where ma_cond in ('X', 'Y')
    group by col_groupement

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 36
    Points : 38
    Points
    38
    Par défaut
    Bonjour Punkoff,

    C'est exactement ce que je voulais, et ça fonctionne.
    Merci beaucoup votre méthode est beaucoup plus naturelle et performante.

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

Discussions similaires

  1. Récupérer la somme de deux colonnes
    Par Hydre dans le forum Développement
    Réponses: 36
    Dernier message: 21/12/2010, 12h18
  2. Somme de deux colonnes dans deux tables
    Par Madjid52 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/09/2010, 22h39
  3. Image à cheval sur deux colonnes dans un texte en deux colonnes
    Par cyrius24 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 15
    Dernier message: 05/09/2007, 15h03
  4. calculer la somme de deux variables
    Par mehdiing dans le forum iReport
    Réponses: 12
    Dernier message: 03/08/2007, 17h25
  5. Somme de deux colonnes
    Par khayate dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/06/2007, 15h25

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