Considérez que j'ai tableaux suivants:Comment écrire une requête pour obtenir seulement la première ligne correspondante en joignant deux tables?
Tableau 1:
AId
AMoniker
Tableau 2:
BId
BMoniker
Table1-> Tableau 2 est relation un à plusieurs
je veux un table de temp hors de ces deux tables où si un Amoniker particulier a plusieurs BMonikers alors seulement le premier devrait aller dans la table.
Par exemple, si les tables sont données suivantes:
Tableau 1:
1 ABCD
2 DEFG
3 QWER
Tableau 2:
1 QZ
1 XC
1 CV
2 DE
2 OP
3 QW
la requête doit retourner les éléments suivants:
ABCD QZ
DEFG DE
QWER QW
Ma requête pour obtenir toutes les lignes est:
select b.BMoniker, a.AMoniker
into #moniker_map
from Table1 a inner join Table2 b
on a.Aid=b.Bid
Comment puis-je modifier cela pour obtenir seulement 1er rang de Tableau2 pour chaque Id.
J'ai essayé requête suivante:
select b.BMoniker, a.AMoniker
from Table1 a inner join Table2 b
on a.Aid=b.Bid
and b.BMoniker in
(
select top 1 BMoniker
from Table2
where Bid=cb.Bid
ORDER BY BMoniker
)
mais je reçois l'erreur suivante: syntaxe incorrecte près de mot-clé 'top' Sybase code d'erreur = 156, SQLState = "ZZZZZ"
Vous devez définir la ligne "première". Laquelle? Quel ordre? – Stu