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 :

Dates en doublon


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2020
    Messages : 8
    Par défaut Dates en doublon
    Bonjour à tous,

    Lorsque j'execute ce code
    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
    SELECT              
            'MDP_SC-MD_CPA-MS_CPA-1' COD_KPI,
            T1.COD_SOC,
            'MD_CPA' COD_DIR_AGE,
            'MS_CPA' COD_SRV_SEC,
            TRUNC(T1.COD_DAT,'YYYY') COD_DAT,
            CASE WHEN 
             T1.COD_TYP_DEM = 'Relance' THEN  COUNT(DISTINCT T1.COD_ACTION) ELSE  0 END
             NB_RELANCE,
             COUNT(DISTINCT T1.COD_ACTION) as NB_TOT
     
    FROM
     
    (
     
     SELECT COD_ACTION,
              F_RCL_ACTIONS.COD_DAT,
              F_RCL_ACTIONS.COD_RLX,
              COD_TYPACTION,
              LIB_TYPACTION,
              f_rcl_reclamation.COD_SOC,
              DECODE (SUBSTR (COD_REAL, 1, 3),
                      'CRC', 'OUI',
                      DECODE (SUBSTR (COD_DEST, 1, 3), 'CRC', 'OUI', 'NON'))
                 FLG_ACT_CRC,
              DECODE (SUBSTR (COD_REAL, 1, 3), 'CRC', COD_REAL, COD_DEST)
                 COD_CRC_CONS,
              DECODE (COD_TYPACTION,
                      'APTEL', 'Relance',
                      'INFOR', 'Relance',
                      SOLL_ACT)
                 COD_TYP_DEM,
     
     
              CASE
                 WHEN COD_TYPACTION IN
                         ('APTEL',
                          'INFOR',
                          'OUVDOS',
                          'PECDOS',
                          'RELDOS',
                          'RELWEB',
                          'TRADOS')
                 THEN
                    1
                 ELSE
                    0
              END
                 FLG_ACT_TPF_CONS
         FROM EDE_PRD.f_rcl_reclamation
              INNER JOIN EDE_PRD.F_RCL_ACTIONS
                 ON f_rcl_reclamation.cod_rlx = F_RCL_ACTIONS.cod_rlx
              LEFT JOIN EDE_PRD.d_res_residence
                 ON f_rcl_reclamation.cod_res = d_res_residence.cod_res
              LEFT JOIN ede_PRD.d_org_rbu rbu
                 ON d_res_residence.cod_rbu = rbu.cod_rbu AND bol_rbu_cur = 1
     
                 WHERE f_rcl_reclamation.COD_SOC = 'LMH' AND F_RCL_ACTIONS.COD_TYPACTION NOT IN( 'CLODOS') 
                 AND F_RCL_ACTIONS.COD_DAT > '01/01/2019' AND F_RCL_ACTIONS.COD_DAT <= '31/12/2019' ) T1
                 WHERE T1.FLG_ACT_CRC = 'OUI' and T1.COD_SOC = 'LMH'
                 GROUP BY TRUNC(T1.COD_DAT,'YYYY'), T1.COD_SOC, T1.COD_TYP_DEM
    J'ai le résultat suivant:
    Nom : 1.PNG
Affichages : 199
Taille : 6,1 KoNom : 1.PNG
Affichages : 199
Taille : 6,1 Ko
    Je souhaitais faire une extraction sur l'année 2019 et avoir le total de "NB_RELANCE" et le total de "NB_TOTAL".
    Le problème c'est que mon extraction me fourni des valeurs sur les 3 lignes (toute en 01/01/2019) et j'aimerai bien regrouper ces valeurs (aggrégation) en une ligne distincte.

    Pouvez vous m'aider ?
    Merci beaucoup d'avance

  2. #2
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Citation Envoyé par lessassy Voir le message
    Je souhaitais faire une extraction sur l'année 2019 et avoir le total de "NB_RELANCE" et le total de "NB_TOTAL".
    Le problème c'est que mon extraction me fourni des valeurs sur les 3 lignes (toute en 01/01/2019) et j'aimerai bien regrouper ces valeurs (aggrégation) en une ligne distincte.

    Pouvez vous m'aider ?
    Merci beaucoup d'avance
    Bonjour,

    1- Si la date n'est pas nécessaire, pourquoi l'inclure dans le select ? Et elle est à chaque fois au 01/01/2019 car elle a été tronquée sur l'année.
    2- Il reste donc à agréger les résultats obtenus. Un Sum devrait convenir.

  3. #3
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2020
    Messages : 8
    Par défaut
    Bonjour,

    Je me suis mal exprimé.
    J'ai besoin de la date mais dans ce cas j'ai juste besoin d'une ligne et non de 3.
    Et l'aggrégation je devrais la faire à quel niveau ?

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 175
    Par défaut
    Bonjour,

    C'est normal il faut que tu places to CASE à l'intérieur du COUNT:

    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
     
    SELECT              
            'MDP_SC-MD_CPA-MS_CPA-1' COD_KPI,
            T1.COD_SOC,
            'MD_CPA' COD_DIR_AGE,
            'MS_CPA' COD_SRV_SEC,
            TRUNC(T1.COD_DAT,'YYYY') COD_DAT,
            count(distinct case when T1.COD_TYP_DEM = 'Relance' then t1.COD_ACTION end) NB_RELANCE,
            COUNT(DISTINCT T1.COD_ACTION) as NB_TOT
     
    FROM
     
    (
     
     SELECT COD_ACTION,
              F_RCL_ACTIONS.COD_DAT,
              F_RCL_ACTIONS.COD_RLX,
              COD_TYPACTION,
              LIB_TYPACTION,
              f_rcl_reclamation.COD_SOC,
              DECODE (SUBSTR (COD_REAL, 1, 3),
                      'CRC', 'OUI',
                      DECODE (SUBSTR (COD_DEST, 1, 3), 'CRC', 'OUI', 'NON'))
                 FLG_ACT_CRC,
              DECODE (SUBSTR (COD_REAL, 1, 3), 'CRC', COD_REAL, COD_DEST)
                 COD_CRC_CONS,
              DECODE (COD_TYPACTION,
                      'APTEL', 'Relance',
                      'INFOR', 'Relance',
                      SOLL_ACT)
                 COD_TYP_DEM,
     
     
              CASE
                 WHEN COD_TYPACTION IN
                         ('APTEL',
                          'INFOR',
                          'OUVDOS',
                          'PECDOS',
                          'RELDOS',
                          'RELWEB',
                          'TRADOS')
                 THEN
                    1
                 ELSE
                    0
              END
                 FLG_ACT_TPF_CONS
         FROM EDE_PRD.f_rcl_reclamation
              INNER JOIN EDE_PRD.F_RCL_ACTIONS
                 ON f_rcl_reclamation.cod_rlx = F_RCL_ACTIONS.cod_rlx
              LEFT JOIN EDE_PRD.d_res_residence
                 ON f_rcl_reclamation.cod_res = d_res_residence.cod_res
              LEFT JOIN ede_PRD.d_org_rbu rbu
                 ON d_res_residence.cod_rbu = rbu.cod_rbu AND bol_rbu_cur = 1
     
                 WHERE f_rcl_reclamation.COD_SOC = 'LMH' AND F_RCL_ACTIONS.COD_TYPACTION NOT IN( 'CLODOS') 
                 AND F_RCL_ACTIONS.COD_DAT > '01/01/2019' AND F_RCL_ACTIONS.COD_DAT <= '31/12/2019' ) T1
                 WHERE T1.FLG_ACT_CRC = 'OUI' and T1.COD_SOC = 'LMH'
                 GROUP BY TRUNC(T1.COD_DAT,'YYYY'), T1.COD_SOC;

Discussions similaires

  1. [XL-2010] Mise à jour date de doublon en VBA
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/02/2019, 15h32
  2. Tri date sans doublon
    Par morpheuss dans le forum Requêtes
    Réponses: 10
    Dernier message: 09/08/2018, 15h47
  3. [AC-2016] nombre de commandes par date sans doublon
    Par awa123 dans le forum Access
    Réponses: 1
    Dernier message: 12/05/2017, 09h26
  4. Extraire des dates sans doublons
    Par jpma75 dans le forum Excel
    Réponses: 13
    Dernier message: 03/02/2016, 22h43
  5. [AC-2000] requête paramétrée Date avec doublons + Etat
    Par sud825 dans le forum IHM
    Réponses: 2
    Dernier message: 20/07/2009, 16h02

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