Bonjour à tous,
Je dois extraire des données Oracle dans un fichier CSV.
Le fichier de sortie doit avoir informations suivantes :
ID;Activité;Canal;IP;
J'ai une table centrale avec mes ID, et 3 tables Activités / Canal / IP qui sont liées avec une clé étrangère à ma table centrale contenant l'ID
Les liaisons entre ma table ID et mes 3 tables est en 1 - n
Prenons l'exemple suivant :
- ID 12345
- Activités liées : A1 et A2
- Canal lié : C1
- IP liées : I1 et I2
Je voudrais avoir au final le résultat suivant :
ID;A1;C1;I1
ID;A2;;I2 => (Champ Canal vide car je n'ai qu'un seul canal)
Note supplémentaire : Je ne sais pas à l'avance si les ID vont avoir un plus grand nombre d'activités, de canaux ou d'IP...
Aujourd'hui je procède en 3 requêtes séparées pour obtenir
ID;A1;;
ID;A2;;
ID;;C1;;
ID;;;I1
ID;;;I2;
Mon but premier est surtout d'aviter un produit cartésien du type :
ID;A1;C1;I1;
ID;A1;C1;I2;
ID;A2;C1;I1;
...
Si quelqu'un a une solution ou une pîste...... Merci d'avance.
Autres informations :
BDD Oracle 8i (donc pas de LEFT OUTER JOIN mais des WHERE xxx (+)= yyy )
Partager