PL/SQL - Comment retourner seule ligne de la table jointe
cela peut être assez simple, je suis tout simplement pas voir la forêt pour les arbres en ce moment. Dans Oracle, je suis en sélectionnant les enregistrements de la table A rejoint à la table B basée sur la clé primaire de la table A. Toutefois table B peut avoir plusieurs enregistrements correspondant à la clé primaire de la table A. Ce qui cause ma requête pour renvoyer les doublons de lignes de la table A. ci-Dessous est une version réduite de ma requête:
TableA TableB
_______ _________
1, Sec1 2, 11/01/2011
2, Sec2 2
3, Sec3 5, 10/01/2011
4, Sec4 6, 10/01/2011
Select A.SecID, A.SecName, B.DateSent from tableA A
inner join tableB B on A.SecID = B.SecID
C'est le retour 2 enregistrements pour Sec2 - comment puis-je le faire revenir seulement 1 record pour Sec2? J'ai essayé d'utiliser distinctes et uniques, mais encore d'obtenir les mêmes résultats.
- Toutes mes excuses, je simplifiée initialement. J'ai en fait besoin d'une date de valeur du tableau B ainsi
- Valeur à la Date de laquelle de ces deux dossiers?
- L'enregistrement dans la tableB avec la date la plus récente. Certains documents peuvent ne pas avoir une valeur de date.
Vous devez vous connecter pour publier un commentaire.
Si vous avez besoin d'un enregistrement à partir de
tableB
ainsi:ORDER BY
clause de contrôles de plusieurs enregistrements surb
vous allez obtenir.Vous pouvez utiliser une fonction de GROUPE pour sélectionner une seule ligne:
Les solutions proposées sont de très bonne qualité. Il y a des cas où ils peuvent avoir besoin de prendre un peu différente de l'approche, en particulier lorsque l'une des tables est très grande par rapport à l'autre, et l'absence d'un index sur la colonne de clé étrangère dans la table B.