Requete un peu complexe (pour moi) [SQL - ORACLE] - SQL/NoSQL - Programmation
Marsh Posté le 28-10-2005 à 09:42:17
bah si, c'est une jointure externe complete, et pas seulement gauche ou droite, que tu veux, non? (full outer join)
Marsh Posté le 28-10-2005 à 09:44:21
Ben c'est ce que je me suis dit également mais je n'ai pas réussi avec mes 4 tables.
Et c'est pour au final etre mis dans du Crystal Report ...
Je vais re-tenter cette solution ;o)
Marsh Posté le 28-10-2005 à 14:52:25
C'est possible de faire un full outer join sur plusieurs tables ?
Je m'explique avec le schéma ci dessous :
http://img369.imageshack.us/my.php?image=tmp6gn.jpg
Je n'ai malhreusement pas la possibilité de modifier le schéma de données.
Seul le lien du bas n'existe pas. Je l'ai mis car je dois m'en servir pour ma requete pour éviter d'avoir le produit cartésien des enregistrements : le titre 1 doit aller avec la valeur 1 et pas avec toutes les valeurs.
Mon soucis est que si je fais un full outer join entre EQP_ATTRIBUTS et ATTRIBUTS, le résultat est le meme.
Et je ne sais pas comment faire pour réaliser les outer joins sur plusieurs tables.
Quelqu'un a une petite idée ?
Merci beaucoup.
Marsh Posté le 28-10-2005 à 15:00:07
Pour ceux qui veulent plus de détails :
http://img462.imageshack.us/my.php?image=tmp28kk.jpg
Je tente des trucs mais soit j'ai 75 000 résultats, soit 30 alors que je devrais en avoir une cinquantaire
Marsh Posté le 28-10-2005 à 15:28:08
En réfléchissant un peu plus, je ne crois pas que je soit obligé de faire des outer join sur plusieurs tables étant donné que c'est juste le lien Ordre d'affichage qui pose problème.
Personne ne pourrait m'aider SVP ??
Marsh Posté le 28-10-2005 à 16:05:22
Citation : Il n'y a pas d'enregistrement pour la valeur si elle est nulle mais je dois quand meme pouvoir récupérer la valeur. J'ai pu obtenir le bon résultat en utilisant une jointure externe. |
Dans ce cas, il faut utiliser deux jointures externes, une pour chaque sens, et additionner les résultats avec une Union.
Pour un exemple, voir ma réponse à une question similaire à http://www.codeguru.com/forum/showthread.php?t=358783 .
Marsh Posté le 28-10-2005 à 16:29:56
Mon soucis est qu'au final je dois l'utiliser dans Crystal Report.
Je viens d'essayer sous Toad et ca ne marche quand meme pas ... pourtant, j'ai bien repris l'exemple donné (avec des where en plus)
Marsh Posté le 28-10-2005 à 16:33:44
En fait, si je ne met pas de left/right/full join, ca me renvoi le produit cartésien des résultats.
Si je met left/right/full join avec le ON sur mon champ INDX (ordre d'affichage), ca me renvoi toujours la meme liste : la meme que si je met INDX = INDX en clause Where ...
snif
Marsh Posté le 28-10-2005 à 17:34:30
Fournis-nous un script qui crée les tables et données (tu peux le faire sous Toad), pas nécessairement toutes les données, juste assez pour l'exemple.
Si tu fais ce petit exemple, tu devrais voir ce que ça donne (très basique ) :
Code :
|
edit : ton problème est juste sur l'ordre d'affichage des résultats ? Dans ce cas, donne les règles d'affichage.
Marsh Posté le 28-10-2005 à 09:25:03
Bonjour,
Je dois écrire une requete qui relie 4 tables et j'ai un petit soucis.
Pour vous expliquer, je ne vais prendre que 2 tables en espérant pouvoir l'adapter plus tard à mon système des 4 tables.
Les 2 tables sont donc :
CARACT_TITRE et CARACT_VALEUR
La clé primaire de ces deux tables est composée de : ID_equipement et Ordre_affichage.
Je dois pouvoir récupérer, dans une meme ligne, le titre et la valeur.
Jusque là, pas de problèmes.
Il n'y a pas d'enregistrement pour la valeur si elle est nulle mais je dois quand meme pouvoir récupérer la valeur. J'ai pu obtenir le bon résultat en utilisant une jointure externe.
Mon problème est que ce fonctionnement est également vrai dans l'autre sens. C'est à dire qu'il peut y avoir une valeur sans titre associé s'il n'est pas défini.
Et là, je ne sais plus faire.
Je ne sais pas comment faire pour afficher, dans l'ordre Ordre_affichage, tous les titres qu'ils aient une valeur ou non et toutes les valeurs qu'ils aient un titre ou non.
J'ai pas mal cherché de mon coté mais pas pu utilisé google car je ne vois meme pas quels mots clé je pourrais donner.
Quelqu'un a t'il déjà été confronté a ce problème et / ou quelqu'un a t'il une piste pour m'aider un petit peu ?
Merci beaucoup
Worldofdada