Вернуть 1 запись из 3 объединенных таблиц в SQL - PullRequest
0 голосов
/ 20 сентября 2018

у меня есть этот запрос

select DISTINCT outcome.outcome_id as N'id', SName as N'dir', Summry as N'summry', notes as N'note',category as N'cat', outcome_date as N'date' from outcome
inner join Incomeuser on outcome.outcome_id=Incomeuser.outcome_id
inner join Senders on Incomeuser.Senders_id=Senders.Senders_id 

это возврат 3 записей с одинаковым идентификатором Все, что я хочу, это первая запись для каждого уникального идентификатора :) как у меня есть эти записи:

  • 106
  • 106
  • 106
  • 260
  • 270
  • 260

должно быть возвращено 106 - 260 - 270 , любая помощь?!

1 Ответ

0 голосов
/ 20 сентября 2018

Не используйте строки для псевдонимов столбцов.Особенно, когда это не нужно.

Не существует такой вещи, как «первая» запись в таблице SQL или наборе результатов.Я предполагаю, что вы собираетесь использовать самые ранние outcome_date.

. Вы можете использовать top (1) и row_number():

select top (1) o.outcome_id as id, SName as dir, Summry as summry, notes as note, category as cat, outcome_date as date
from outcome o inner join
     Incomeuser iu
     on o.outcome_id = iu.outcome_id inner join
     Senders s
     on iu.Senders_id = s.Senders_id 
order by row_number() over (partition by o.outcome_id order by outcome_date) ;
...