Как получить только последний ряд после внутреннего соединения? - PullRequest
1 голос
/ 20 июня 2019

Мне нужно вернуть уникального funeral_homes, который содержит незавершенные интересы и отсортировать их по отметке времени последнего выполнения.

Это мой запрос sql:

select distinct h.funeral_home_name, h.funeral_home_guid, h.address1, h.city, h.state, p.discount_available, t.date_created
from tblFuneralHomes h inner join tblFuneralTransactions t on h.funeral_home_guid = t.funeral_home_guid 
inner join vwFuneralHomePricing p on h.funeral_home_guid = p.funeral_home_guid where completed=0 order by 'funeral_home_name' asc;

Это результат,но мне нужны только уникальные дома с последним добавленным свинцом

enter image description here Что я должен изменить здесь?

1 Ответ

1 голос
/ 20 июня 2019

Проблема здесь заключается в том, что вы объединяете таблицы с отношением 1 ко многим с таблицей tblFuneralHomes, но вы ожидаете только одну строку на похоронное бюро.

Вместо использования distinct, я бы предложилвместо этого вы группируете по требуемым выходным столбцам похоронных бюро, а затем применяете какой-либо агрегат к столбцам, необходимым из соединенных таблиц, чтобы получить только одно вычисленное значение из всех возможных объединенных значений.

Например,ниже мы находим первую дату транзакции (min), связанную с каждым похоронным бюро:

select h.funeral_home_name, h.funeral_home_guid, h.address1, h.city, h.state,
       p.discount_available, min(t.date_created)
from tblFuneralHomes h 
inner join tblFuneralTransactions t on h.funeral_home_guid = t.funeral_home_guid 
inner join vwFuneralHomePricing p on h.funeral_home_guid = p.funeral_home_guid 
where completed=0 
group by h.funeral_home_name, h.funeral_home_guid, h.address1, h.city, h.state, 
         p.discount_available
order by h.funeral_home_name asc

Обратите внимание, что в зависимости от количества элементов связи между tblFuneralHomes и vwFuneralHomePricing вам также может понадобитьсяудалить p.discount_available из группировки, а также представить его с помощью функции агрегирования, аналогично тому, что я сделал с t.date_created

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...