Bonjour,
j'ai cette magnifique requete :
SELECT ava.oid as DOSSIER_ID,
( SELECT distinct avaa.etape FROM TEA.AVA_AVARIE avaa WHERE avaa.dossier_reparation = ava.oid ) as ETAPE_AVARIE_LIB_LTX,
( SELECT distinct avaa.entite_operationnelle FROM TEA.AVA_AVARIE avaa WHERE avaa.dossier_reparation = ava.oid ) as ENTITE_OP_GESTION_ID,
nvl(ava.vehicule,( SELECT distinct avaa.vehicule FROM TEA.AVA_AVARIE avaa WHERE avaa.dossier_reparation = ava.oid )) as VEHICULE_ID,
ava.tiers_responsable as TIERS_RESPONSABLE_ID,
ava.entite_operationnelle as ENTITE_OP_RESPONSABLE_ID,
ava.montant_total_ht as MONTANT_TOTAL_REPARATION_MT,
enu.libelle_lng as STATUT_DOSSIER_LIB_LTX
FROM TEA.AVA_DOSSIER_REPARATION ava,
TEA.ENU_STATUT_ADM_DOSSIER enu
WHERE
/* On ne récupère pas les dossiers au statut enregistré */
enu.constante <> 'STA_ADM_DOSS_ENREG'
AND
enu.OID = ava.statut_dossier
AND
enu.OID = ava.statut_dossier
J'aurais voulu savoir s'il était possible de m'éviter de répeter mes trois select entre parenthèses (qui récuperent l'etape,l'entite_operationnelle et le véhicule), et ne les avoir qu'une seule fois dans ma requete.
Je les ai mis comme cela car en placant ma recherche dans la requete principale j'obtiens plusieurs lignes (en effet plusieurs avaries peuvent etre rattachées à un même dossier du coup le résultat final .. mais vu que meme si j'ai plusieurs lignes mes trois champs "etape,entite operationnelle et véhicule" seront identiques je ne veux les récupérer qu'une seule et unique fois)
La requete que j'ai au dessus me donne le bon résultat mais je me dis que ce n'est peut etre pas la plus "propre" possible..
en schématisant ca pour que ce soit plus clair..
table ava
un enregistrement avec oid = 13
table avaa
enregistrement 1
dossier_reparation = 13
avaa.etape = 12
avaa.entite_operationnelle = 123156
avaa.vehicule = 541654
enregistrement 2
dossier_reparation = 13
avaa.etape = 12
avaa.entite_operationnelle = 123156
avaa.vehicule = 541654
enregistrement 3
dossier_reparation = 13
avaa.etape = 12
avaa.entite_operationnelle = 123156
avaa.vehicule = 541654
RESULTAT FINAL
Une seule ligne
oid = 13
dossier_reparation = 13
avaa.etape = 12
avaa.entite_operationnelle = 123156
avaa.vehicule = 541654
et pas 3..........
oid = 13
dossier_reparation = 13
avaa.etape = 12
avaa.entite_operationnelle = 123156
avaa.vehicule = 541654
oid = 13
dossier_reparation = 13
avaa.etape = 12
avaa.entite_operationnelle = 123156
avaa.vehicule = 541654
oid = 13
dossier_reparation = 13
avaa.etape = 12
avaa.entite_operationnelle = 123156
avaa.vehicule = 541654
Merci de votre aide!!
Partager