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 :

Informations provenant de deux requêtes différentes


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 124
    Par défaut Informations provenant de deux requêtes différentes
    Bonjour ,

    J'ai les deux requêtes suivante :

    1ère requête:
    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
    SELECT 
    /*Axes d'analyses*/
           DAT.JOUR,
            SIT.SIT_PER_ID ,
           SIT.DATE_HISTO,
           SIT.SIT_PER_LAB_EN,
     /*Indicateurs*/      
           SUM(BL.BL_CNT_OCC)    AS NB_OCC,
           COUNT  (BL.BL_ID)         AS NB_BAT
     
    FROM DM_PAT_SIT_H SIT
    LEFT JOIN DM_PAT_BL_H BL ON SIT.SIT_ID = BL.BL_SIT_ID
    INNER JOIN DM_DATE DAT ON SIT.DATE_JOUR_HISTO  = DAT.JOUR
    GROUP BY
           DAT.JOUR,
            SIT.SIT_PER_ID ,
           SIT.DATE_HISTO,
           SIT.SIT_PER_LAB_EN
    2ème requête :
    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
    SELECT 
    /*Axes d'analyses*/
           DAT.JOUR,
           BL.BL_ID,
           BL.DATE_HISTO,
           BL. BL_NAM /,
           BL.BL_ELS_ID ,
           BL.BL_ELS_LAB_EN ,
     /*Indicateurs*/      
           SUM(BL.BL_CNT_OCC)  AS NB_OCC,
           COUNT  (BL.BL_ID)     AS NB_BAT
    FROM DM_PAT_BL_H BL
    INNER JOIN DM_DAT DAT ON BL.BL_DATE_HISTO = DAT.JOUR
    GROUP BY        DAT.JOUR,
           BL.BL_ID,
           BL.DATE_HISTO,
           BL. BL_NAM ,
           BL.BL_ELS_ID ,
           BL.BL_ELS_LAB_EN
    Je souhaite réunir mes deux requêtes :
    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
    SELECT       
           DATE_HISTO_SIT, 
           DATE_HISTO_BL,
           SIT.SIT_PER_ID,
           SIT.DATE_HISTO,
           SIT.SIT_PER_LAB_EN,
           BL.BL_ID,
           BL.DATE_HISTO,
           BL. BL_NAM,
           BL.BL_ELS_ID,
           BL.BL_ELS_LAB_EN,
           NB_OCC_BL,
           NB_OCC_SIT,
           NB_BAT_BL  ,
           NB_BAT_SIT
    FROM REQUETE 1 , REQUETE 2
    Est-ce possible d'utiliser un with as ou autres ?
    Merci d'avance

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Oui, si les requêtes ont une ou plusieurs colonnes identiques afin de faire le regroupement (c-dessous nommée colonne_commune)
    et dans chaque requête tu rajoutes autant de colonne NULL que de données de l'autre requête

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT colonne_commune, max(T1_col1), max(T1_Col2), max(T2_col1), max(T2_Col2), max(T2_Col3)
    FROM (
    SELECT colonne_commune, col1 T1_col1, col2 T1_col2, NULL T2_col1, NULL T2_col2, NULL T2_col3
    FROM T1
    UNION ALL
    SELECT colonne_commune, NULL T1_col1, NULL T1_col2, colx T2_col1, coly T2_col2 , colz T2_Col3
    FROM T2
    )
    GROUP BY colonne_commune

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 124
    Par défaut
    Merci pour ton retour

    En fait la j’ai pris un exemple ou j’avais des indicateurs identiques

    Mais si j’ai des indicateurs différents comment puis-je réaliser ma requête ?

  4. #4
    Membre très actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2014
    Messages : 261
    Par défaut
    Salut salut

    Le terme "indicateur" serait à remplacer par "colonne" je pense

    Tu parles du fait qu'elles soient différentes, le sont-elles au niveau de la donnée ou du nom ? Ce que je veux dire c'est que si le nom de la colonne n'est pas le même d'une requête à l'autre, la magie du JOIN opérera (c'est le principe d'une jointure).
    Si c'est au niveau de la donnée, c'est à dire que tu ne peux même pas faire de jointure entre ta requête 1 et ta requête 2, il va te falloir rajouter des colonnes

    Bisous bisous

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/08/2014, 17h40
  2. Réponses: 7
    Dernier message: 20/08/2013, 19h41
  3. Réponses: 10
    Dernier message: 29/04/2011, 12h02
  4. [AC-2002] attribuer deux requêtes différentes à une liste
    Par Jean-Luc80 dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/09/2010, 12h36
  5. unir deux select provenant de deux tables différentes
    Par Dendrite dans le forum Débuter
    Réponses: 2
    Dernier message: 20/06/2010, 19h08

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