Bonjour,
Je veux faire une requete qui me récupère l'ensemble des acteurs pour lesquels un informatiosn au moins est renseigné.
Les informations recherchées sont toutes dans la table matable, sous la forme
matable.type_donnee = type de données (par exemple CA2001)
matable.valeur_donnee =) valeur de la donnée.
Voici la requête à laquelle j'aboutis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE matable ( ACTID NUMBER(7) NOT NULL, type_donnee VARCHAR2(15) NOT NULL, valeur_donnee VARCHAR2(50) )
le problème, c'est que je me retrouve avec énormément d'enregistrements pour lesquels je n'ai aucune information.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT a.actid AS actid, t_donnee1.valeur_donnee AS ma_donnee1, t_donnee2.valeur_donnee AS ma_donnee2 FROM acteur a, matable t_donnee1, matable t_donnee2 WHERE t_donnee1.actid(+) = a.actid AND t_donnee2.actid(+) = a.actid AND t_donnee1.type_donnee(+) = 'typedonnee1' AND t_donnee2.type_donnee(+) = 'typedonnee2'
Existe-t-il une solution élégante pour en récupérer que les enregistrements significatifs (c'est-à-dire pour lesquels on a au moins une information) ?
(en sachant qu'il y a en réalité une demi douzaine de données que je veux récupérer de la sorte, et qu'il y a près de 30000 enregistrements dans la table acteur, et très peu d'information dans la table matable)
merci d'avance.
Pour info, j'utilise Oracle - s'il existe des astuces propres à Oracle.
Partager