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 :

Oracle10g - Jointure particulière


Sujet :

SQL Oracle

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Points : 148
    Points
    148
    Par défaut Oracle10g - Jointure particulière
    Bonjour,

    Je travaille sous Oracle 10g et ai besoin de faire de l'agrégation de données.

    J'ai donc une table dédiée indépendante pour récupérer l'agrégation de mon MCD. Lorsque je veux remplir cette table j'ai un problème de jointure.

    Mon problème est de faire un GROUP BY sur une année et un mois sachant que je fais une jointure sur une date :

    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
     
    INSERT INTO AGREGATION_PNB(C_CLIENT,...,MOIS,ANNEE,...)
    SELECT
    T1.C_ID_CLIENT,
    ...
    to_char(T1.D_DATE_EFFECTIVE,'mm') AS MOIS,
    to_char(T1.D_DATE_EFFECTIVE,'yyyy') AS ANNEE,
    ...
    FROM TABLE1 T1
    LEFT OUTER JOIN TABLE2 T2 ON to_char(T1.D_DATE_EFFECTIVE,'mm') = to_char(T2.D_DATE_EFFECTIVE,'mm') AND to_char(T1.D_DATE_EFFECTIVE,'yyyy') = to_char(T2.D_DATE_EFFECTIVE,'yyyy')
    GROUP BY
    T1.C_ID_CLIENT, 
    ...
    T1.D_DATE_EFFECTIVE,
    ...
    Le SELECT de cette requête me renvoie par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    C_CLIENT....MOIS  ANNEE
    125               01      2008
    125               01      2008
    125               01      2008
    ...
    Pourquoi ? Car en fait dans ces 3 cas la date effective a un jour différent :
    02/01/2008
    03/01/2008
    04/01/2008

    En réalité, ce que je voudrais donc c'est n'avoir qu'une seule ligne et donc que ce soit regroupé par client, mois et année, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    C_CLIENT....MOIS  ANNEE
    125               01      2008
    ...
    Est-ce faisable ?
    Merci pour toute suggestion.

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 73
    Points : 82
    Points
    82
    Par défaut
    Hello,

    Ben modifies ton group by !?

    Tu as demandé de grouper par d_effective_date et non "MM" de d_effective_date nor "YYYY" de d_effective_date...

    Cordialement.

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/02/2008, 12h42
  2. Jointure particulière ACCESS 2003
    Par david71 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 22/01/2008, 15h03
  3. Réponses: 14
    Dernier message: 17/03/2003, 18h31
  4. Jointures INNER et jointures classiques ???
    Par UbiK dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/09/2002, 10h29
  5. jointure renvois pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 7
    Dernier message: 29/08/2002, 12h51

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