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 :

Over Partition By - Doublon


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 197
    Par défaut Over Partition By - Doublon
    Bonjour,

    voici mon souci:

    j'ai une table A:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nom bonbon
    toto  10
    toto  15
    et une table B:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nom note
    toto 2
    toto 8
    je souhaite sommer les notes présent dans la table B tout en récupérant la somme des bonbon dans la table A.

    j'ai donc fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select B.NOM,
             SUM(B.NOTE) OVER PARTITION BY (B.NOM),
             SUM(A.BONBON) OVER PARTITION BY (A.NOM)
             FROM A,B
             WHERE A.NOM=B.NOM
    mais ca me double les sommes:
    sum notes=20
    sum bonbon=50

    le probleme semble etre au niveau de la jointure,
    une idéee please?

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Et pour quoi ça ne nous étonne pas ?
    T'a essayé de voir que ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Select a.*, b.*
      From a,b
    Where a.nom = b.nom

  3. #3
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Par défaut
    Hello,
    A mon avis tu peux faire ça comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select b.nom, sum(b.note)
    from B
    group by nom
    union
    select a.nom, sum(a.bonbon)
    from A
    group by nom
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 197
    Par défaut
    ben avec un union j'aurai pas les bonbon+les notes sur la meme ligne!
    je ne trouve pas de moyen

  5. #5
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    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
     
    SQL> SELECT a.*, b.*
      FROM a,b
    WHERE a.nom = b.nom
      2    3    4  ;
     
    NOM                      BONBON NOM                        NOTE
    -------------------- ---------- -------------------- ----------
    toto                         10 toto                          2
    toto                         15 toto                          2
    toto                         10 toto                          8
    toto                         15 toto                          8
    Avant les analytiques il y a les jointures à apprendre

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 197
    Par défaut
    ben oui y a bien le double de réponse, c justement mon problème je ne souhaite pas le double! je connais les jointures!! c pour ca ke je demande s'il y a un moyen de contourner cela.

  7. #7
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Par défaut
    Pour mettre tout sur la même ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select C.nom, C.note, D.bonbon
    from 
    (SELECT b.nom, sum(b.note) note
    FROM B
    GROUP BY nom) C,
    (
    SELECT a.nom, sum(a.bonbon) bonbon
    FROM A
    GROUP BY nom) D
    where C.nom = D.nom
    voilou
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 197
    Par défaut
    tks

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

Discussions similaires

  1. MAX OVER PARTITION
    Par Robbie dans le forum OTIC (ex-Genio)
    Réponses: 0
    Dernier message: 27/07/2012, 16h40
  2. Réponses: 1
    Dernier message: 24/03/2011, 09h42
  3. Over Partition By
    Par logiciel_const dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/02/2011, 16h01
  4. Postgre Over Partition By
    Par the java lover dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 01/08/2008, 09h11
  5. Over Partition SQL Server
    Par dosilbr dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/06/2008, 09h08

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