Bonjour,
La situation en 2 mots : je suis utilisatrice d'une DB. Or le créateur - gestionnaire de la DB n'a pas prévu dans ses formulaires - vues la requête adaptée à mes besoins. En attendant adaptation, je tire moi-même mes résultats de la DB via Toad.
Il s'agit de simples requêtes SELECT mais je dois poser des conditions "complexes" qui me dépassent déjà.
Il s'agit d'une DB avec des résultats de tests médicaux.
Table principale : dossier d (liée à de nombreuses autres tables)
Champs
- d.demandeur : type de demandeur : avec réponses possibles : médecin, entreprise, autre
- d.medecin_ID : ID du médecin si le demandeur est un médecin
- d.entreprise_ID : ID de l'entreprise si le demandeur est une entreprise
- d.autre_ID : ID du demandeur ni médecin, ni entreprise
- d.IDa : ID de l'échantillon si c'est un organe (est null si d.IDb ne l'est pas)
- d.IDb : ID de l'échantillon si ce n'est pas un organe (est null si d.IDa ne l'est pas)
Ces champs sont liés par des ID uniques à des tables descriptives :
Table medecin_adresse ma : adresses des demandeurs médecin
Table entreprise_adresse ea : adresses des demandeurs entreprises
Table autre_adresse aa : adresses des demandeurs autres
Table identification_A ia : description de l'échantillon organe
Table identification_B ib : description de l'échantillon non organe
Je veux une vue avec :
- d.DossierID
- nom du demandeur : (ma.nom_medecin ou ea.nom_entreprise ou aa.nom_autre) selon la valeur du champ d.demandeur
- nom échantillon : (ia_ech ou ib_ech) selon que ce soit un échantillon organe ou non
Comment faire ? En fait mes conditions WHERE dépendent des valeurs des champs d.demandeur, d.IDa et d.IDb...Je devrais faire l'équivalent de IF d.demandeur = '...' THEN (SELECT FROM WHERE) et UNION de ces requêtes.
Merci d'avance pour vos suggestions explications !
Mes excuses si je ne suis pas dans le bon forum et si ma question est incompréhensible. Je ne suis pas assez compétente même pour poser une bonne question dans ce domaine ;-) !
Bonne fin de journée
Cécile
Oracle10q
Partager