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 :

ORACLE - Récupération champ sous requête


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 50
    Par défaut ORACLE - Récupération champ sous requête
    Bonjour à tous,

    Ce n'est pas faute d'avoir chercher ... Mais je m'avoue vaincu.

    Mon problème simplifié :
    Sur une table T, je cherche à retourner des valeurs doublonnées.
    Les critères de doublon sont une concaténation de champs : C1 || C2 || C3
    La table est alimenté quotidiennement par des lots : L1, L2, L3, L4 ...

    Je cherche à trouver, sur mon dernier lot (Je le connais chaque jour, prenons ici L4), les doublons pouvant être :
    • sur le lot quotidien
      sur un lot antérieur


    Ma requête ci-dessous semble fonctionner correctement, mais j'aimerais récupérer, dans le select principal, le numéro de lot sur lequel se trouve le doublon.


    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
     
     
    SELECT
     (CRE_ENR_K.NUM_CONTR || CRE_ENR_K.EVC_DT_TRAIT_EVT || CRE_ENR_K.CD_OPERATION || CRE_ENR_K.CD_ETAT_TRANS || CRE_ENR_K.CD_ETAT_ACT_GEST || CRE_ENR_K.NATURE_CRO)  as CC
    FROM
      CRE_ENR_K
    WHERE
    CRE_ENR_K.CD_PRODUIT in ('127','135','138','180','320','329','335','402','403','405','408','418','502','518','523','543','544','617','645','646','718','766','804','852','856','858','859','872','895','896','916','921','925','926','940','941','943','949','954','984')
      AND  CRE_ENR_K.NUM_LOT  =  '01225'
      and  (CRE_ENR_K.NUM_CONTR || CRE_ENR_K.EVC_DT_TRAIT_EVT || CRE_ENR_K.CD_OPERATION || CRE_ENR_K.CD_ETAT_TRANS || CRE_ENR_K.CD_ETAT_ACT_GEST || CRE_ENR_K.NATURE_CRO)  IN  (SELECT
      (K2.NUM_CONTR || K2.EVC_DT_TRAIT_EVT || K2.CD_OPERATION || K2.CD_ETAT_TRANS || K2.CD_ETAT_ACT_GEST || K2.NATURE_CRO)
    FROM
      CRE_ENR_K K2
    WHERE 
    K2.CD_PRODUIT in ('127','135','138','180','320','329','335','402','403','405','408','418','502','518','523','543','544','617','645','646','718','766','804','852','856','858','859','872','895','896','916','921','925','926','940','941','943','949','954','984')
      AND  K2.CD_OPERATION  NOT IN  ('21','30')
        AND  K2.NUM_LOT   >= '01210' 
    GROUP BY
      (K2.NUM_CONTR || K2.EVC_DT_TRAIT_EVT || K2.CD_OPERATION || K2.CD_ETAT_TRANS || K2.CD_ETAT_ACT_GEST || K2.NATURE_CRO)
    HAVING
      count((K2.NUM_CONTR || K2.EVC_DT_TRAIT_EVT || K2.CD_OPERATION || K2.CD_ETAT_TRANS || K2.CD_ETAT_ACT_GEST || K2.NATURE_CRO))  >  1
      )

    Quelqu'un aurait'il une idée ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2006
    Messages : 139
    Par défaut
    Bonsoir,

    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
    SELECT * FROM CRE_ENR_K KExt
    WHERE
    CRE_ENR_K.NUM_CONTR || CRE_ENR_K.EVC_DT_TRAIT_EVT || CRE_ENR_K.CD_OPERATION || CRE_ENR_K.CD_ETAT_TRANS || CRE_ENR_K.CD_ETAT_ACT_GEST || CRE_ENR_K.NATURE_CRO)
    IN (/*tarequete*/
    SELECT
     (CRE_ENR_K.NUM_CONTR || CRE_ENR_K.EVC_DT_TRAIT_EVT || CRE_ENR_K.CD_OPERATION || CRE_ENR_K.CD_ETAT_TRANS || CRE_ENR_K.CD_ETAT_ACT_GEST || CRE_ENR_K.NATURE_CRO)  AS CC
    FROM
      CRE_ENR_K
    WHERE
    CRE_ENR_K.CD_PRODUIT IN ('127','135','138','180','320','329','335','402','403','405','408','418','502','518','523','543','544','617','645','646','718','766','804','852','856','858','859','872','895','896','916','921','925','926','940','941','943','949','954','984')
      AND  CRE_ENR_K.NUM_LOT  =  '01225'
      AND  (CRE_ENR_K.NUM_CONTR || CRE_ENR_K.EVC_DT_TRAIT_EVT || CRE_ENR_K.CD_OPERATION || CRE_ENR_K.CD_ETAT_TRANS || CRE_ENR_K.CD_ETAT_ACT_GEST || CRE_ENR_K.NATURE_CRO)  IN  (SELECT
      (K2.NUM_CONTR || K2.EVC_DT_TRAIT_EVT || K2.CD_OPERATION || K2.CD_ETAT_TRANS || K2.CD_ETAT_ACT_GEST || K2.NATURE_CRO)
    FROM
      CRE_ENR_K K2
    WHERE 
    K2.CD_PRODUIT IN ('127','135','138','180','320','329','335','402','403','405','408','418','502','518','523','543','544','617','645','646','718','766','804','852','856','858','859','872','895','896','916','921','925','926','940','941','943','949','954','984')
      AND  K2.CD_OPERATION  NOT IN  ('21','30')
        AND  K2.NUM_LOT   >= '01210' 
    GROUP BY
      (K2.NUM_CONTR || K2.EVC_DT_TRAIT_EVT || K2.CD_OPERATION || K2.CD_ETAT_TRANS || K2.CD_ETAT_ACT_GEST || K2.NATURE_CRO)
    HAVING
      count((K2.NUM_CONTR || K2.EVC_DT_TRAIT_EVT || K2.CD_OPERATION || K2.CD_ETAT_TRANS || K2.CD_ETAT_ACT_GEST || K2.NATURE_CRO))  >  1
      )
     )
    pas tres elegant mais ca doit fonctionner. Désolé je ne peux pas tester

    Cdt

Discussions similaires

  1. [Oracle 10g] Problème Union-sous requêtes-group by
    Par slobberbone dans le forum SQL
    Réponses: 2
    Dernier message: 17/09/2007, 18h16
  2. Sélection de tous les champs d'une sous-Requête que je redéfini
    Par electrosat03 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 28/06/2007, 16h43
  3. Taille des champs sous Oracle
    Par crovette51101 dans le forum Oracle
    Réponses: 6
    Dernier message: 09/11/2006, 10h36
  4. Récupération d'une requête sous forme de tableau
    Par le--handballeur dans le forum iReport
    Réponses: 2
    Dernier message: 01/08/2006, 15h56
  5. Ramener plusieurs champs dans une sous requête...
    Par David.V dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 12/01/2005, 07h54

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