У меня есть SQL-запрос:подзапросов с несколькими полями
SELECT DISTINCT t1.inn,
t1.idx,
(SELECT TOP 1 adr
FROM t2
WHERE t2.idx = t1.idx
AND t2.inn = t1.inn) ADR,
(SELECT TOP 1 name
FROM t2
WHERE t2.idx = t1.idx
AND t2.inn = t1.inn) NAME
FROM t1
Можно ли сделать один подзапрос вместо двух? (т. е. одновременно выберите TOP 1 ADR и NAME). Сервер: MS SQL 2008-2012.
Вы используете 'TOP' без' ORDER BY'. Какой результат вы ожидаете? –
Я хочу получить уникальные комбинации INN и IDX с некоторыми ADR и NAME. Каждой паре INN-IDX соответствует номер ADR-NAME. Я хочу получить любую из них (независимо от того, что именно). Напр. в таблице существуют 3 строки: INN = 111, IDX = 101, ADR = A1, NAME = N1; INN = 111, IDX = 101, ADR = B1, NAME = N1; INN = 222, IDX = 202, ADR = A2, NAME = N2; Я хотел бы получить результат с двумя строками: INN = 111, IDX = 101 и INN = 222, IDX = 202, с любым ADR (то есть не имеет значения A1 или B1 для первой строки) – Andrey