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 :

Union entre 2 tables et group by


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 98
    Points : 61
    Points
    61
    Par défaut Union entre 2 tables et group by
    Bonjour,
    J'ai une requête qui va chercher des données dans 2 tables. Une est la table courante, l'autre contient l'historique, donc structure identique + date de l'historique.

    Je ne sais pas trop comment expliquer ce que j'aimerais.
    En fait avec ces tables, je fais des totaux de montants en fonction de la date.
    Par ex, le mois dejuin est dans la table active et les anciennes dates sont dans la table historique.
    Je cherche a afficher un tableau récapitulatif des montants par date, par mois et par personne.
    Ma requête est la suivante (ca fait un tableau croisé en plus):

    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
    16
    17
    18
    19
    20
    21
    22
    23
    SELECT   bill_manager,
                  em_id,
                  tel_id,
                  TO_CHAR (date_invoice_start, 'YYYY'),
                  NVL ( MAX (DECODE (date_invoice_start, TO_DATE ('1', 'MM'), total_tva) ), 0 ) Jan,
                  NVL (MAX (DECODE (date_invoice_start, TO_DATE ('2', 'MM'), total_tva) ), 0 )  Fev
     
           FROM   taxe_gsm
           group by bill_manager,em_id,tel_id, TO_CHAR date_invoice_start, 'YYYY')
     
       UNION ALL
         SELECT   bill_manager,
                  em_id,
                  tel_id,
                  TO_CHAR (date_invoice_start, 'YYYY'),
                  NVL ( MAX (DECODE (date_invoice_start, TO_DATE ('1', 'MM'), total_tva) ), 0 ) Jan,
                  NVL (MAX (DECODE (date_invoice_start, TO_DATE ('2', 'MM'), total_tva) ), 0 )  Fev
     
           FROM   htaxe_gsm
       GROUP BY   bill_manager,
                  em_id,
                  tel_id,
                  TO_CHAR (date_invoice_start, 'YYYY')
    Mon résultat donne:

    bill_manager | em-id | tel_id | TO_CHAR (date_invoice_start, 'YYYY') |JAN | FEV

    "le chef" | "l'employer" | 02342342342 | 2010 | 10.07 | 0
    "le chef" | "l'employer" | 02342342342 | 2010 | 0 |50.2


    Et ce que j'aimerais obtenir est:
    bill_manager | em-id | tel_id | TO_CHAR (date_invoice_start, 'YYYY') |JAN | FEV | CUMUL

    "le chef" | "l'employer" | 02342342342 | 2010 | 10.07 | 50.2 | 60.27

    J'espère que vous m'avez comrpis et que vous pourrez m'aider..

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 98
    Points : 61
    Points
    61
    Par défaut
    C bon j'ai eu une illumination et je sais pas comment supprimer mon poste..
    Donc au cas ou, ma soluce:

    sous-requete
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    SELECT bill_manager, em_id,tel_id,
      TO_CHAR (date_invoice_start, 'YYYY'),
      NVL ( MAX (DECODE (date_invoice_start, TO_DATE ('1', 'MM'), total_tva) ), 0 ) Jan,
      NVL (MAX (DECODE (date_invoice_start, TO_DATE ('2', 'MM'), total_tva) ), 0 )  Fev
    FROM (SELECT   bill_manager,
                  em_id,
                  tel_id,
                  date_invoice_start,
                  TO_CHAR (date_invoice_start, 'YYYY'),
                 total_tva
                  FROM   htaxe_gsm
     
    UNION ALL
         SELECT   bill_manager,
                  em_id,
                  tel_id,
                  date_invoice_start,
                  TO_CHAR (date_invoice_start, 'YYYY'),
                  total_tva
           FROM   taxe_gsm   
     
             )
             GROUP BY 
    bill_manager, em_id,tel_id,TO_CHAR (date_invoice_start, 'YYYY')   
       ORDER BY   bill_manager, em_id;

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/09/2013, 18h42
  2. Aide avec union entre deux tables
    Par chapeau_melon dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/05/2013, 14h24
  3. Etat basé sur l'union entre deux tables
    Par mirooz dans le forum IHM
    Réponses: 5
    Dernier message: 06/11/2011, 13h01
  4. Requete d'union entre 2 tables
    Par kanak09 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 09/07/2010, 09h45
  5. [EG] Faire un UNION entre des tables physiques
    Par Deciprog dans le forum Outils BI
    Réponses: 2
    Dernier message: 26/01/2010, 13h28

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