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

Langage SQL Discussion :

[Debutant]Correction d'une requete normée svp


Sujet :

Langage SQL

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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Points : 54
    Points
    54
    Par défaut [Debutant]Correction d'une requete normée svp
    Bonjour,

    j'ai la requete suivante specifique à Oracle :

    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
     
    select e.CHARGE_CODE               project,
           e.PRIMARY_LOCATION_CODE     proj_goc_off,
           e.PRELIMINARY_CHARGE_CODE,
           e.DEPARTMENT_CODE,
           e.ENGAGEMENT_TYPE,
           e.SOFT_OPEN_DATE,
           e.END_DATE,
           e.CER_APPROVAL_DATE,
           e.CER_STATUS,
           e.BILLING_ARRANGEMENT_CODE,
           e.ORIGINAL_CHARGE_CODE,
           e.BILLING_SUB_TYPE_CODE,
           e.CLIENT_INVESTMENT,
           e.PERFORMANCE_PARTNERSHIP,
           e.WITHDRAWN_ENGAGEMENT,
           e.PA_ACTIVITY_CODE,
           e.ENG_NAME,
           e.ENG_DESCRIPTION,
           e.CENTER_SECTOR_CODE,
           e.ONGOING_CODE,
           e.MINIMUM_RESERVE_FLAG,
           e.OPPORTUNITY_COST_INDICATOR,
           e.HARD_CLOSE_DATE,
           e.FIRST_ENG_STATUS,
           e.TASK_NUMBER, 
           p.FMNO	ED_FMNO,
           p.LAST_NAME	ED_LAST_NAME,
           p.FIRST_NAME	ED_FIRST_NAME
    from ENG_ENGAGEMENT e, PSN_PERSON p, ENG_KEY_PLAYER k
    where CHARGE_CODE is not null
      and e.PA_ACTIVITY_CODE is not null
      and e.SRC_ENGAGEMENT_ID=(select min(e2.SRC_ENGAGEMENT_ID)
                               from ENG_ENGAGEMENT e2
                              where e2.charge_code=e.charge_code)
      and e.SRC_ENGAGEMENT_ID=k.SRC_ENGAGEMENT_ID (+)
      and e.SRC_SYSTEM_ID=k.SRC_SYSTEM_ID (+)
      and k.ED_PERSON_ID=p.PERSON_ID (+)

    et je dois la normer

    j'ai ecrit le code suivant :
    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
     
    select e.CHARGE_CODE               project,
           e.PRIMARY_LOCATION_CODE     proj_goc_off,
           e.PRELIMINARY_CHARGE_CODE,
           e.DEPARTMENT_CODE,
           e.ENGAGEMENT_TYPE,
           e.SOFT_OPEN_DATE,
           e.END_DATE,
           e.CER_APPROVAL_DATE,
           e.CER_STATUS,
           e.BILLING_ARRANGEMENT_CODE,
           e.ORIGINAL_CHARGE_CODE,
           e.BILLING_SUB_TYPE_CODE,
           e.CLIENT_INVESTMENT,
           e.PERFORMANCE_PARTNERSHIP,
           e.WITHDRAWN_ENGAGEMENT,
           e.PA_ACTIVITY_CODE,
           e.ENG_NAME,
           e.ENG_DESCRIPTION,
           e.CENTER_SECTOR_CODE,
           e.ONGOING_CODE,
           e.MINIMUM_RESERVE_FLAG,
           e.OPPORTUNITY_COST_INDICATOR,
           e.HARD_CLOSE_DATE,
           e.FIRST_ENG_STATUS,
           e.TASK_NUMBER, 
           p.FMNO	ED_FMNO,
           p.LAST_NAME	ED_LAST_NAME,
           p.FIRST_NAME	ED_FIRST_NAME
    from ENG_ENGAGEMENT e, PSN_PERSON p 
    	LEFT OUTER JOIN ENG_KEY_PLAYER k on e.SRC_ENGAGEMENT_ID=k.SRC_ENGAGEMENT_ID
    	LEFT OUTER JOIN ENG_KEY_PLAYER k on e.SRC_SYSTEM_ID=k.SRC_SYSTEM_ID
    	LEFT OUTER JOIN ENG_KEY_PLAYER p on k.ED_PERSON_ID=p.PERSON_ID
    where CHARGE_CODE is not null
      and e.PA_ACTIVITY_CODE is not null
      and e.SRC_ENGAGEMENT_ID=(select min(e2.SRC_ENGAGEMENT_ID)
                               from ENG_ENGAGEMENT e2
                              where e2.charge_code=e.charge_code)

    mais j'obtiens l'erreur suivante :
    ERREUR à la ligne 30 :
    ORA-00904: "E"."SRC_ENGAGEMENT_ID": invalid identifier

    quelqu'un pourrait-il m'expliquer mon erreur?

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    A priori ton erreur est ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    from ENG_ENGAGEMENT e, PSN_PERSON p 
       LEFT OUTER JOIN ENG_KEY_PLAYER k on e.SRC_ENGAGEMENT_ID=k.SRC_ENGAGEMENT_ID
    au tout début de ton from

    Essaye de remplacer peut etre ton égalité par un unsing en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    USING(SRC_ENGAGEMENT_ID)
    tu n'aura comme ça pas besoin de nommer tes tables que tu utilise vu que dans tes 2 tables ton identifiant est le meme

    Cordialement.
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Aïe

    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    from ENG_ENGAGEMENT e 
       LEFT OUTER JOIN ENG_KEY_PLAYER k on e.SRC_ENGAGEMENT_ID = k.SRC_ENGAGEMENT_ID 
                                       and e.SRC_SYSTEM_ID     = k.SRC_SYSTEM_ID
       LEFT OUTER JOIN PSN_PERSON p     on k.ED_PERSON_ID      = p.PERSON_ID
    where CHARGE_CODE is not null 
      and e.PA_ACTIVITY_CODE is not null 
      and e.SRC_ENGAGEMENT_ID=(select min(e2.SRC_ENGAGEMENT_ID) 
                               from ENG_ENGAGEMENT e2 
                               where e2.charge_code=e.charge_code)
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Points : 54
    Points
    54
    Par défaut
    ça marche!
    grand merci!

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

Discussions similaires

  1. Besoin d'aide pour une requete imbriquée svp.
    Par plex dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/08/2007, 11h35
  2. [osql][debutant] resultat d'une requete dans un fichier
    Par Merfolk dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/06/2006, 17h12
  3. [Debutant] Aide sur une requete normée
    Par Wisefool dans le forum Oracle
    Réponses: 2
    Dernier message: 14/04/2006, 18h41
  4. [Debutant] Explication d'une requete : (+)
    Par Wisefool dans le forum Oracle
    Réponses: 27
    Dernier message: 27/09/2005, 09h13
  5. [debutant]Problème avec une requete ....
    Par MichMich29 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 27/07/2005, 17h19

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