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 :

Différencier résultats d'une requête


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Points : 58
    Points
    58
    Par défaut Différencier résultats d'une requête
    Bonjour à tous,

    je vous explique mon problème. Actuellement, je possède une base de données client et j'effectue des statistiques sur différents critères.
    Tout d'abord j'ai une requête qui récupère mes clients possèdent une voiture.
    J'ai ensuite une requête similaire mais qui récupère mes clients possèdent une moto.
    Et enfin une requête qui récupère mon nombre de client total.
    J'effectue mes 3 requêtes séparément, récupère les résultats en les mettant dans Access et en les "fusionnant" sur une clé unique que j'ai créé moi même dans chaque fichier.

    1- Je voudrai donc savoir si je pouvais à l'aide d'une seule requête arriver à tout récupérer d'un seul coup, mais en distinguant les clients possédant une voiture de ceux qui possède une moto car je divise ensuite chacun des nombres séparément pour avoir un % ?

    2- Etant donné que dans ma requête j'utilise un GROUPE BY, puis-je rajouter une ligne/colonne dans mes résultats qui calculera directement le total, % ... ?

    Merci de votre aide,

    Cordialement

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

    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
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Tu peux le gérer avec des decode (ou case si c'est plus compliqué)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT SUM(DECODE(loc, 'moto', 1, 0)) nb_moto, SUM(DECODE(loc, 'voiture', 1, 0)) nb_voiture, COUNT(DISTINCT client)
    FROM (
    SELECT 1 client, 'moto' loc FROM dual
    UNION ALL SELECT 1 client, 'voiture' loc FROM dual
    UNION ALL SELECT 2 client, 'moto' loc FROM dual
    UNION ALL SELECT 3 client, 'voiture' loc FROM dual
    UNION ALL SELECT 4 client, 'velo' loc FROM dual
    )
    where loc in ('moto', 'voiture')
     
    NB_MOTO	NB_VOITURE	COUNT(DISTINCTCLIENT)
    2	2	3
    Tu peux encapsuler le tout pour faire des calculs de %

    Sinon, tu peux aussi gérer les % par ligner avec les fonctions analytique
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Membre du Club
    Inscrit en
    Avril 2013
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 148
    Points : 58
    Points
    58
    Par défaut
    Tout d'abord merci de votre réponse, cependant je ne suis pas arrivé à obtenir ce que je voulais. On va donc y aller par étape et je vais vous faire parvenir mes requêtes de base que j'aimerai fusionner en une seule et de façon la plus optimisée possible.

    1-
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    SELECT DISTINCT
      RDWH_EDS_AGNT_POST_FONC2.REFR_EXTR_AGNT,
      count(distinct DCLI_PROFIL_PERS_TOT.NUMR_PERS),
      DCLI_PORTEFEUILLE.IDNT_PORTF_COML,
      RDWH1_EDS_HIERARCHIE21.IDNT_EXTR_EDS_NIV4,
      RDWH1_EDS_HIERARCHIE21.DESG_COUR_EDS_NIV4,
      RDWH1_EDS_HIERARCHIE21.IDNT_EXTR_EDS_NIV7,
      RDWH1_EDS_HIERARCHIE21.DESG_COUR_EDS_NIV7,
      trim(RDWH_CODE_CIVILITE2a.LIBL_CIVL)||' '|| nvl(RDWH_EDS_AGNT_POST_FONC2.NOM_MART,RDWH_EDS_AGNT_POST_FONC2.NOM_PATR)||' '|| RDWH_EDS_AGNT_POST_FONC2.PRNM,
      RDWH_EDS_AGNT_POST_FONC2.POST_FONC_AFFC,
      Table__15335938.LIBL_POST_FONC,
      DCLI_PORTEFEUILLE.LIBL_PORTF_COML
    FROM
      DCLI_ADRESSES,
      DCLI_ADRESSES  DCLI_ADRESSES_CORR,
      DCLI_ADRESSES  DCLI_ADRESSES_FISC,
      DCLI_ADRESSES  DCLI_ADRESSES_FISC_PRO,
      DCLI_ADRESSES  DCLI_ADRESSES_CORR_PRO,
      DCLI.DCLI_PROFIL_PARTIC,
      DCLI_SYNT_PARTIC,
      DCLI.DCLI_PERS_DME,
      DCLI_DME,
      DCLI_LIEU_ACTIV,
      RDWH.RDWH_EDS_AGNT_POST_FONC  RDWH_EDS_AGNT_POST_FONC2,
      RDWH.RDWH_EDS_HIERARCHIE  RDWH1_EDS_HIERARCHIE21,
      RDWH_EDS_AGENCE,
      DCLI.DCLI_PROFIL_PROF,
      DCLI_PROFIL_PERS_TOT,
      DCLI_PORTEFEUILLE,
      RDWH.RDWH_CODE_TYPE_POST_FONC  Table__15335938,
      RDWH_CODE_CIVILITE  RDWH_CODE_CIVILITE2a
    WHERE
      ( DCLI.DCLI_PROFIL_PARTIC.IDNT_ADRS_COMM=DCLI_ADRESSES.IDNT_ADRS(+) and DCLI.DCLI_PROFIL_PARTIC.CODE_ORGN_FINN=DCLI_ADRESSES.CODE_ORGN_FINN(+)  )
      AND  ( DCLI.DCLI_PROFIL_PARTIC.IDNT_ADRS_CORR=DCLI_ADRESSES_CORR.IDNT_ADRS(+) and DCLI.DCLI_PROFIL_PARTIC.CODE_ORGN_FINN=DCLI_ADRESSES_CORR.CODE_ORGN_FINN(+)  )
      AND  ( DCLI.DCLI_PROFIL_PARTIC.IDNT_ADRS_LEGL_FISC=DCLI_ADRESSES_FISC.IDNT_ADRS(+) and DCLI.DCLI_PROFIL_PARTIC.CODE_ORGN_FINN=DCLI_ADRESSES_FISC.CODE_ORGN_FINN(+)  )
      AND  ( DCLI_LIEU_ACTIV.NUMR_PERS(+)=DCLI.DCLI_PROFIL_PROF.NUMR_PERS and DCLI_LIEU_ACTIV.CODE_ORGN_FINN(+)=DCLI.DCLI_PROFIL_PROF.CODE_ORGN_FINN  )
      AND  ( DCLI_LIEU_ACTIV.NUMR_CHRN_PRFS(+) =DCLI.DCLI_PROFIL_PROF.NUMR_CHRN_PRFS and DCLI_LIEU_ACTIV.CODE_ORGN_FINN(+)=DCLI.DCLI_PROFIL_PROF.CODE_ORGN_FINN  )
      AND  ( DCLI_PROFIL_PERS_TOT.NUMR_PERS=DCLI.DCLI_PROFIL_PARTIC.NUMR_PERS(+) and DCLI_PROFIL_PERS_TOT.CODE_ORGN_FINN=DCLI.DCLI_PROFIL_PARTIC.CODE_ORGN_FINN(+)  )
      AND  ( DCLI_ADRESSES_FISC_PRO.IDNT_ADRS(+)=DCLI_LIEU_ACTIV.IDNT_ADRS_LEGL_FISC and DCLI_ADRESSES_FISC_PRO.CODE_ORGN_FINN(+)=DCLI_LIEU_ACTIV.CODE_ORGN_FINN  )
      AND  ( DCLI_LIEU_ACTIV.IDNT_ADRS_CORR=DCLI_ADRESSES_CORR_PRO.IDNT_ADRS(+) and DCLI_LIEU_ACTIV.CODE_ORGN_FINN=DCLI_ADRESSES_CORR_PRO.CODE_ORGN_FINN(+)  )
      AND  ( DCLI_SYNT_PARTIC.NUMR_PERS=DCLI.DCLI_PROFIL_PARTIC.NUMR_PERS and DCLI_SYNT_PARTIC.CODE_ORGN_FINN=DCLI.DCLI_PROFIL_PARTIC.CODE_ORGN_FINN  )
      AND  ( DCLI_PORTEFEUILLE.IDNT_PORTF_COML(+)=DCLI_DME.IDNT_PORTF_COML and DCLI_PORTEFEUILLE.CODE_ORGN_FINN(+)=DCLI_DME.CODE_ORGN_FINN  )
      AND  ( RDWH_EDS_AGNT_POST_FONC2.REFR_INTE_POST_FONC(+)=DCLI_PORTEFEUILLE.EDS_INTR_SUIV_PORTF
    AND RDWH_EDS_AGNT_POST_FONC2.DATE_DEBT_VALD_REFR(+) <= sysdate
     AND RDWH_EDS_AGNT_POST_FONC2.DATE_FIN_VALD_REFR(+) >= sysdate and RDWH_EDS_AGNT_POST_FONC2.CODE_ORGN_FINN(+)=DCLI_PORTEFEUILLE.CODE_ORGN_FINN  )
      AND  ( Table__15335938.TYPE_FONC_POST_FONC(+)=RDWH_EDS_AGNT_POST_FONC2.TYPE_FONC_POST_FONC and Table__15335938.CODE_ORGN_FINN(+)=RDWH_EDS_AGNT_POST_FONC2.CODE_ORGN_FINN  )
      AND  ( DCLI_DME.NUMR_DOSS_ECNM(+)=DCLI.DCLI_PERS_DME.NUMR_DOSS_ECNM and 
    DCLI_DME.CODE_ORGN_FINN(+)=DCLI.DCLI_PERS_DME.CODE_ORGN_FINN  )
      AND  ( DCLI.DCLI_PERS_DME.NUMR_PERS(+)=DCLI_PROFIL_PERS_TOT.NUMR_PERS and 
    DCLI.DCLI_PERS_DME.CODE_ORGN_FINN(+)=DCLI_PROFIL_PERS_TOT.CODE_ORGN_FINN  )
      AND  ( DCLI_PROFIL_PERS_TOT.EDS_EXTR_PERS=RDWH_EDS_AGENCE.IDNT_EXTR_EDS(+) and DCLI_PROFIL_PERS_TOT.TYPE_EDS_EXTR_PERS=RDWH_EDS_AGENCE.TYPE_ELMT_STRC(+) and 
    DCLI_PROFIL_PERS_TOT.CODE_ORGN_FINN=RDWH_EDS_AGENCE.CODE_ORGN_FINN(+)   )
      AND  ( RDWH_CODE_CIVILITE2a.CODE_CIVL(+)=RDWH_EDS_AGNT_POST_FONC2.CODE_CIVL  )
      AND  ( RDWH1_EDS_HIERARCHIE21.IDNT_INTR_EDS(+)=RDWH_EDS_AGENCE.IDNT_INTR_EDS AND RDWH1_EDS_HIERARCHIE21.TYPE_ORGN(+)  = '002' and 
    RDWH1_EDS_HIERARCHIE21.CODE_ORGN_FINN(+)=RDWH_EDS_AGENCE.CODE_ORGN_FINN  )
      AND  ( RDWH_EDS_AGENCE.TYPE_ELMT_STRC=RDWH1_EDS_HIERARCHIE21.TYPE_ELMT_STRC(+) and 
    RDWH_EDS_AGENCE.CODE_ORGN_FINN=RDWH1_EDS_HIERARCHIE21.CODE_ORGN_FINN(+)   )
      AND  ( DCLI.DCLI_PROFIL_PROF.NUMR_PERS(+)=DCLI_PROFIL_PERS_TOT.NUMR_PERS and DCLI.DCLI_PROFIL_PROF.CODE_ORGN_FINN(+)=DCLI_PROFIL_PERS_TOT.CODE_ORGN_FINN  )
      AND  (
      DCLI_PROFIL_PERS_TOT.CODE_ETAT_PERS  =  1
      AND  CASE WHEN ( DCLI_SYNT_PARTIC.CODE_FAML_OPPS_COUR_PLUS_ELV = 43 ) THEN 1 ELSE 0 END
      =  0
      AND  (DCLI.DCLI_PROFIL_PARTIC.NUMR_TELP_CORR_CLNT  LIKE  '06%'
      OR   DCLI.DCLI_PROFIL_PARTIC.NUMR_TELP_TRVL  LIKE  '06%'
      OR   DCLI.DCLI_PROFIL_PARTIC.ADRS_E_MAIL_CLNT  LIKE  '06%'
      OR   DCLI_ADRESSES_FISC.NUMR_TELP_DOMC  LIKE  '06%'
      OR   DCLI_ADRESSES_FISC_PRO.NUMR_TELP_DOMC  LIKE  '06%'
      OR   DCLI_ADRESSES_CORR_PRO.NUMR_TELP_DOMC  LIKE  '06%'
      OR   DCLI.DCLI_PROFIL_PARTIC.NUMR_TELP_CORR_CLNT  LIKE  '07%'
      OR   DCLI.DCLI_PROFIL_PARTIC.NUMR_TELP_TRVL  LIKE  '07%'
      OR   DCLI_ADRESSES_CORR.NUMR_TELP_DOMC  LIKE  '07%'
      OR   DCLI_ADRESSES_FISC.NUMR_TELP_DOMC  LIKE  '07%'
      OR   DCLI_ADRESSES.NUMR_TELP_DOMC  LIKE  '07%')
      )
    GROUP BY
      RDWH_EDS_AGNT_POST_FONC2.REFR_EXTR_AGNT, 
      DCLI_PORTEFEUILLE.IDNT_PORTF_COML, 
      RDWH1_EDS_HIERARCHIE21.IDNT_EXTR_EDS_NIV4, 
      RDWH1_EDS_HIERARCHIE21.DESG_COUR_EDS_NIV4, 
      RDWH1_EDS_HIERARCHIE21.IDNT_EXTR_EDS_NIV7, 
      RDWH1_EDS_HIERARCHIE21.DESG_COUR_EDS_NIV7, 
      trim(RDWH_CODE_CIVILITE2a.LIBL_CIVL)||' '|| nvl(RDWH_EDS_AGNT_POST_FONC2.NOM_MART,RDWH_EDS_AGNT_POST_FONC2.NOM_PATR)||' '|| RDWH_EDS_AGNT_POST_FONC2.PRNM, 
      RDWH_EDS_AGNT_POST_FONC2.POST_FONC_AFFC, 
      Table__15335938.LIBL_POST_FONC, 
      DCLI_PORTEFEUILLE.LIBL_PORTF_COML
    2-

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    SELECT DISTINCT
      RDWH_EDS_AGNT_POST_FONC2.REFR_EXTR_AGNT,
      count(distinct DCLI_PROFIL_PERS_TOT.NUMR_PERS),
      DCLI_PORTEFEUILLE.IDNT_PORTF_COML,
      RDWH1_EDS_HIERARCHIE21.IDNT_EXTR_EDS_NIV4,
      RDWH1_EDS_HIERARCHIE21.DESG_COUR_EDS_NIV4,
      RDWH1_EDS_HIERARCHIE21.IDNT_EXTR_EDS_NIV7,
      RDWH1_EDS_HIERARCHIE21.DESG_COUR_EDS_NIV7,
      trim(RDWH_CODE_CIVILITE2a.LIBL_CIVL)||' '|| nvl(RDWH_EDS_AGNT_POST_FONC2.NOM_MART,RDWH_EDS_AGNT_POST_FONC2.NOM_PATR)||' '|| RDWH_EDS_AGNT_POST_FONC2.PRNM,
      Table__15335938.LIBL_POST_FONC,
      DCLI_PORTEFEUILLE.LIBL_PORTF_COML
    FROM
      DCLI_ADRESSES  DCLI_ADRESSES_FISC,
      DCLI.DCLI_PROFIL_PARTIC,
      DCLI_SYNT_PARTIC,
      DCLI.DCLI_PERS_DME,
      DCLI_DME,
      RDWH.RDWH_EDS_AGNT_POST_FONC  RDWH_EDS_AGNT_POST_FONC2,
      RDWH.RDWH_EDS_HIERARCHIE  RDWH1_EDS_HIERARCHIE21,
      RDWH_EDS_AGENCE,
      DCLI_PROFIL_PERS_TOT,
      DCLI_PORTEFEUILLE,
      RDWH_CODE_CIVILITE  RDWH_CODE_CIVILITE2a,
      RDWH.RDWH_CODE_TYPE_POST_FONC  Table__15335938
    WHERE
      ( DCLI.DCLI_PROFIL_PARTIC.IDNT_ADRS_LEGL_FISC=DCLI_ADRESSES_FISC.IDNT_ADRS(+) and DCLI.DCLI_PROFIL_PARTIC.CODE_ORGN_FINN=DCLI_ADRESSES_FISC.CODE_ORGN_FINN(+)  )
      AND  ( DCLI_PROFIL_PERS_TOT.NUMR_PERS=DCLI.DCLI_PROFIL_PARTIC.NUMR_PERS(+) and DCLI_PROFIL_PERS_TOT.CODE_ORGN_FINN=DCLI.DCLI_PROFIL_PARTIC.CODE_ORGN_FINN(+)  )
      AND  ( DCLI_SYNT_PARTIC.NUMR_PERS=DCLI.DCLI_PROFIL_PARTIC.NUMR_PERS and DCLI_SYNT_PARTIC.CODE_ORGN_FINN=DCLI.DCLI_PROFIL_PARTIC.CODE_ORGN_FINN  )
      AND  ( DCLI_PORTEFEUILLE.IDNT_PORTF_COML(+)=DCLI_DME.IDNT_PORTF_COML and DCLI_PORTEFEUILLE.CODE_ORGN_FINN(+)=DCLI_DME.CODE_ORGN_FINN  )
      AND  ( RDWH_EDS_AGNT_POST_FONC2.REFR_INTE_POST_FONC(+)=DCLI_PORTEFEUILLE.EDS_INTR_SUIV_PORTF
    AND RDWH_EDS_AGNT_POST_FONC2.DATE_DEBT_VALD_REFR(+) <= sysdate
     AND RDWH_EDS_AGNT_POST_FONC2.DATE_FIN_VALD_REFR(+) >= sysdate and RDWH_EDS_AGNT_POST_FONC2.CODE_ORGN_FINN(+)=DCLI_PORTEFEUILLE.CODE_ORGN_FINN  )
      AND  ( Table__15335938.TYPE_FONC_POST_FONC(+)=RDWH_EDS_AGNT_POST_FONC2.TYPE_FONC_POST_FONC and Table__15335938.CODE_ORGN_FINN(+)=RDWH_EDS_AGNT_POST_FONC2.CODE_ORGN_FINN  )
      AND  ( DCLI_DME.NUMR_DOSS_ECNM(+)=DCLI.DCLI_PERS_DME.NUMR_DOSS_ECNM and 
    DCLI_DME.CODE_ORGN_FINN(+)=DCLI.DCLI_PERS_DME.CODE_ORGN_FINN  )
      AND  ( DCLI.DCLI_PERS_DME.NUMR_PERS(+)=DCLI_PROFIL_PERS_TOT.NUMR_PERS and 
    DCLI.DCLI_PERS_DME.CODE_ORGN_FINN(+)=DCLI_PROFIL_PERS_TOT.CODE_ORGN_FINN  )
      AND  ( DCLI_PROFIL_PERS_TOT.EDS_EXTR_PERS=RDWH_EDS_AGENCE.IDNT_EXTR_EDS(+) and DCLI_PROFIL_PERS_TOT.TYPE_EDS_EXTR_PERS=RDWH_EDS_AGENCE.TYPE_ELMT_STRC(+) and 
    DCLI_PROFIL_PERS_TOT.CODE_ORGN_FINN=RDWH_EDS_AGENCE.CODE_ORGN_FINN(+)   )
      AND  ( RDWH_CODE_CIVILITE2a.CODE_CIVL(+)=RDWH_EDS_AGNT_POST_FONC2.CODE_CIVL  )
      AND  ( RDWH1_EDS_HIERARCHIE21.IDNT_INTR_EDS(+)=RDWH_EDS_AGENCE.IDNT_INTR_EDS AND RDWH1_EDS_HIERARCHIE21.TYPE_ORGN(+)  = '002' and 
    RDWH1_EDS_HIERARCHIE21.CODE_ORGN_FINN(+)=RDWH_EDS_AGENCE.CODE_ORGN_FINN  )
      AND  ( RDWH_EDS_AGENCE.TYPE_ELMT_STRC=RDWH1_EDS_HIERARCHIE21.TYPE_ELMT_STRC(+) and 
    RDWH_EDS_AGENCE.CODE_ORGN_FINN=RDWH1_EDS_HIERARCHIE21.CODE_ORGN_FINN(+)   )
      AND  (
      DCLI_PROFIL_PERS_TOT.CODE_ETAT_PERS  =  1
      AND  CASE WHEN ( DCLI_SYNT_PARTIC.CODE_FAML_OPPS_COUR_PLUS_ELV = 43 ) THEN 1 ELSE 0 END
      =  0
      AND  (DCLI.DCLI_PROFIL_PARTIC.NUMR_TELP_CORR_CLNT  LIKE  '%@%'
      OR   DCLI.DCLI_PROFIL_PARTIC.NUMR_TELP_TRVL  LIKE  '%@%'
      OR   DCLI.DCLI_PROFIL_PARTIC.ADRS_E_MAIL_CLNT  LIKE  '%@%'
      OR   DCLI_ADRESSES_FISC.NUMR_TELP_DOMC  LIKE  '%@%')
      )
    GROUP BY
      RDWH_EDS_AGNT_POST_FONC2.REFR_EXTR_AGNT, 
      DCLI_PORTEFEUILLE.IDNT_PORTF_COML, 
      RDWH1_EDS_HIERARCHIE21.IDNT_EXTR_EDS_NIV4, 
      RDWH1_EDS_HIERARCHIE21.DESG_COUR_EDS_NIV4, 
      RDWH1_EDS_HIERARCHIE21.IDNT_EXTR_EDS_NIV7, 
      RDWH1_EDS_HIERARCHIE21.DESG_COUR_EDS_NIV7, 
      trim(RDWH_CODE_CIVILITE2a.LIBL_CIVL)||' '|| nvl(RDWH_EDS_AGNT_POST_FONC2.NOM_MART,RDWH_EDS_AGNT_POST_FONC2.NOM_PATR)||' '|| RDWH_EDS_AGNT_POST_FONC2.PRNM, 
      Table__15335938.LIBL_POST_FONC, 
      DCLI_PORTEFEUILLE.LIBL_PORTF_COML
    3- Cette dernière requête récupère le nombre total de client, que chaque vendeur possède.
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    SELECT
      RDWH_EDS_AGNT_POST_FONC2.REFR_EXTR_AGNT,
      count(distinct DCLI_PROFIL_PERS_TOT.NUMR_PERS),
      DCLI_PORTEFEUILLE.IDNT_PORTF_COML,
      RDWH1_EDS_HIERARCHIE21.IDNT_EXTR_EDS_NIV4,
      RDWH1_EDS_HIERARCHIE21.DESG_COUR_EDS_NIV4,
      RDWH1_EDS_HIERARCHIE21.IDNT_EXTR_EDS_NIV7,
      RDWH1_EDS_HIERARCHIE21.DESG_COUR_EDS_NIV7,
      trim(RDWH_CODE_CIVILITE2a.LIBL_CIVL)||' '|| nvl(RDWH_EDS_AGNT_POST_FONC2.NOM_MART,RDWH_EDS_AGNT_POST_FONC2.NOM_PATR)||' '|| RDWH_EDS_AGNT_POST_FONC2.PRNM,
      Table__15335938.LIBL_POST_FONC,
      DCLI_PORTEFEUILLE.LIBL_PORTF_COML
    FROM
      DCLI.DCLI_PROFIL_PARTIC,
      DCLI_SYNT_PARTIC,
      DCLI.DCLI_PERS_DME,
      DCLI_DME,
      RDWH.RDWH_EDS_AGNT_POST_FONC  RDWH_EDS_AGNT_POST_FONC2,
      RDWH.RDWH_EDS_HIERARCHIE  RDWH1_EDS_HIERARCHIE21,
      RDWH_EDS_AGENCE,
      DCLI_PROFIL_PERS_TOT,
      DCLI_PORTEFEUILLE,
      RDWH_CODE_CIVILITE  RDWH_CODE_CIVILITE2a,
      RDWH.RDWH_CODE_TYPE_POST_FONC  Table__15335938
    WHERE
      ( DCLI_PROFIL_PERS_TOT.NUMR_PERS=DCLI.DCLI_PROFIL_PARTIC.NUMR_PERS(+) and DCLI_PROFIL_PERS_TOT.CODE_ORGN_FINN=DCLI.DCLI_PROFIL_PARTIC.CODE_ORGN_FINN(+)  )
      AND  ( DCLI_SYNT_PARTIC.NUMR_PERS=DCLI.DCLI_PROFIL_PARTIC.NUMR_PERS and DCLI_SYNT_PARTIC.CODE_ORGN_FINN=DCLI.DCLI_PROFIL_PARTIC.CODE_ORGN_FINN  )
      AND  ( DCLI_PORTEFEUILLE.IDNT_PORTF_COML(+)=DCLI_DME.IDNT_PORTF_COML and DCLI_PORTEFEUILLE.CODE_ORGN_FINN(+)=DCLI_DME.CODE_ORGN_FINN  )
      AND  ( RDWH_EDS_AGNT_POST_FONC2.REFR_INTE_POST_FONC(+)=DCLI_PORTEFEUILLE.EDS_INTR_SUIV_PORTF
    AND RDWH_EDS_AGNT_POST_FONC2.DATE_DEBT_VALD_REFR(+) <= sysdate
     AND RDWH_EDS_AGNT_POST_FONC2.DATE_FIN_VALD_REFR(+) >= sysdate and RDWH_EDS_AGNT_POST_FONC2.CODE_ORGN_FINN(+)=DCLI_PORTEFEUILLE.CODE_ORGN_FINN  )
      AND  ( Table__15335938.TYPE_FONC_POST_FONC(+)=RDWH_EDS_AGNT_POST_FONC2.TYPE_FONC_POST_FONC and Table__15335938.CODE_ORGN_FINN(+)=RDWH_EDS_AGNT_POST_FONC2.CODE_ORGN_FINN  )
      AND  ( DCLI_DME.NUMR_DOSS_ECNM(+)=DCLI.DCLI_PERS_DME.NUMR_DOSS_ECNM and 
    DCLI_DME.CODE_ORGN_FINN(+)=DCLI.DCLI_PERS_DME.CODE_ORGN_FINN  )
      AND  ( DCLI.DCLI_PERS_DME.NUMR_PERS(+)=DCLI_PROFIL_PERS_TOT.NUMR_PERS and 
    DCLI.DCLI_PERS_DME.CODE_ORGN_FINN(+)=DCLI_PROFIL_PERS_TOT.CODE_ORGN_FINN  )
      AND  ( DCLI_PROFIL_PERS_TOT.EDS_EXTR_PERS=RDWH_EDS_AGENCE.IDNT_EXTR_EDS(+) and DCLI_PROFIL_PERS_TOT.TYPE_EDS_EXTR_PERS=RDWH_EDS_AGENCE.TYPE_ELMT_STRC(+) and 
    DCLI_PROFIL_PERS_TOT.CODE_ORGN_FINN=RDWH_EDS_AGENCE.CODE_ORGN_FINN(+)   )
      AND  ( RDWH_CODE_CIVILITE2a.CODE_CIVL(+)=RDWH_EDS_AGNT_POST_FONC2.CODE_CIVL  )
      AND  ( RDWH1_EDS_HIERARCHIE21.IDNT_INTR_EDS(+)=RDWH_EDS_AGENCE.IDNT_INTR_EDS AND RDWH1_EDS_HIERARCHIE21.TYPE_ORGN(+)  = '002' and 
    RDWH1_EDS_HIERARCHIE21.CODE_ORGN_FINN(+)=RDWH_EDS_AGENCE.CODE_ORGN_FINN  )
      AND  ( RDWH_EDS_AGENCE.TYPE_ELMT_STRC=RDWH1_EDS_HIERARCHIE21.TYPE_ELMT_STRC(+) and 
    RDWH_EDS_AGENCE.CODE_ORGN_FINN=RDWH1_EDS_HIERARCHIE21.CODE_ORGN_FINN(+)   )
      AND  (
      DCLI_PROFIL_PERS_TOT.CODE_ETAT_PERS  =  1
      AND  CASE WHEN ( DCLI_SYNT_PARTIC.CODE_FAML_OPPS_COUR_PLUS_ELV = 43 ) THEN 1 ELSE 0 END
      =  0
      )
    GROUP BY
      RDWH_EDS_AGNT_POST_FONC2.REFR_EXTR_AGNT, 
      DCLI_PORTEFEUILLE.IDNT_PORTF_COML, 
      RDWH1_EDS_HIERARCHIE21.IDNT_EXTR_EDS_NIV4, 
      RDWH1_EDS_HIERARCHIE21.DESG_COUR_EDS_NIV4, 
      RDWH1_EDS_HIERARCHIE21.IDNT_EXTR_EDS_NIV7, 
      RDWH1_EDS_HIERARCHIE21.DESG_COUR_EDS_NIV7, 
      trim(RDWH_CODE_CIVILITE2a.LIBL_CIVL)||' '|| nvl(RDWH_EDS_AGNT_POST_FONC2.NOM_MART,RDWH_EDS_AGNT_POST_FONC2.NOM_PATR)||' '|| RDWH_EDS_AGNT_POST_FONC2.PRNM, 
      Table__15335938.LIBL_POST_FONC, 
      DCLI_PORTEFEUILLE.LIBL_PORTF_COML
    Merci beaucoup de votre aide !

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    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
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Vu que les FROM sont différents, obligé d'exécuter les 3 requêtes.
    Vu que les SELECT sont identiques (à part un champ dans la première requête : RDWH_EDS_AGNT_POST_FONC2.POST_FONC_AFFC), tu peux faire la chose suivante :

    Faire un UNION ALL de tes requêtes et encapsuler par un select group by et sommer les colonnes dont tu veux faire le point.
    Pas très clair, mais un exemple simple :

    Requête 1 : Nb de tables de SYS par tablespace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT tablespace_name, status, COUNT(*) nb FROM all_tables WHERE owner = 'SYS' GROUP BY tablespace_name, status 
     
    TABLESPACE_NAME	STATUS	NB
    SYSAUX		VALID	297
    SYSTEM		VALID	562
    		VALID	114
    Requête 2 : Nb d'index de SYS par tablespace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT tablespace_name, status, COUNT(*) nb  FROM all_indexes WHERE owner = 'SYS' GROUP BY tablespace_name, status 
     
    TABLESPACE_NAME	STATUS	NB
    SYSAUX		VALID	352
    SYSTEM		VALID	632
    		VALID	3
    		N/A	27
    On regroupe, note la séparation par requête des champs count(*)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT tablespace_name, status, SUM(nb_table) nbtable, SUM(nb_index) nbindex
    FROM (
    SELECT tablespace_name, status, COUNT(*) nb_table, NULL nb_index FROM all_tables WHERE owner = 'SYS' GROUP BY tablespace_name, status 
    UNION ALL
    SELECT tablespace_name, status, NULL nb_table, COUNT(*) nb_index  FROM all_indexes WHERE owner = 'SYS' GROUP BY tablespace_name, status 
    )
    GROUP BY tablespace_name, status
     
    TABLESPACE_NAME	STATUS	NBTABLE	NBINDEX
    SYSAUX		VALID	297	352
    SYSTEM		VALID	562	632
    		VALID	114	3
    		N/A		27
    Avec ceci tu devrais y arriver.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

Discussions similaires

  1. Comparer le résultat d'une requête
    Par VirginieGE dans le forum ASP
    Réponses: 3
    Dernier message: 10/08/2004, 15h15
  2. Arrondir le résultat d'une requête
    Par wautierp dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/06/2004, 11h56
  3. Résultat d'une requête dans une variable...
    Par Hoegaarden dans le forum Bases de données
    Réponses: 6
    Dernier message: 28/04/2004, 13h51
  4. Résultat d'une requète SQL
    Par camino dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/02/2004, 15h22
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26

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