Предположим, у меня есть следующие таблицы:
Таблица 1:
AId
AMoniker
Таблица 2:
BId
BMoniker
Table1-> Table2 - это отношение один ко многим
Мне нужна временная таблица из этих двух таблиц, в которой, если у определенного Amoniker есть несколько BMonikers, тогда в таблицу должна входить только первая.
Например, если таблицы имеют следующие данные:
Table1:
1 ABCD
2 DEFG
3 QWER
Таблица 2:
1 QZ
1 XC
1 CV
2 DE
2 OP
3 QW
запрос должен возвращать следующее:
ABCD QZ
DEFG DE
QWER QW
Мой запрос для получения всех строк:
select b.BMoniker, a.AMoniker
into #moniker_map
from Table1 a inner join Table2 b
on a.Aid=b.Bid
Как я могу изменить это, чтобы получить только 1-ую строку изTable2 для каждого идентификатора.
Я пробовал следующий запрос:
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
)
Но я получаю следующую ошибку: Неверный синтаксис рядом с ключевым словом "top" Код ошибки Sybase = 156, SQLState = "ZZZZZ"