У меня есть 3 таблицы People, Distribution, DistributionPeopleDetails следующим образом:
Я хочу получить информацию, когда люди получили последнюю помощь и когда они должны чтобы получить следующую помощь.
Я пытался объединить три таблицы по-разному, но ничего не дало мне ожидаемого результата, я не слишком опытен с SQL, так что, вероятно, я просто думаю о базовых c присоединяется, в то время как может понадобиться какой-то продвинутый трюк, подобный группе et et 1025 *. Кто-нибудь может мне помочь, пожалуйста?
Я уже пробовал это сделать:
select top 1 P.Name, d.DistributionDate as 'Next Scheduled Help'
from Peoples p left join [dbo].[DistributionPeopleDetails] dp on p.Id =
dp.PeopleId
left join [dbo].[Distributions] d on dp.DistributionId = d.Id
where d.DistributionDate > GetDate() order by d.Id
select top 1 P.Name, d.DistributionDate as 'LastScheduled Help'
from Peoples p left join [dbo].[DistributionPeopleDetails] dp on p.Id =
dp.PeopleId
left join [dbo].[Distributions] d on dp.DistributionId = d.Id
where d.DistributionDate < GetDate() order by d.Id
Я получаю ожидаемый результат, но не могу вставить этот фрагмент запроса в свой SP, где я Я читаю все свойства для людей, присоединившись к нескольким другим таблицам.
Что я получил / хочу получить: