Я пытаюсь запросить некоторые данные из базы данных SQL Server, но не могу понять, как написать запрос, чтобы получить нужные данные. Ниже приведен сценарий.
CaseMaster может иметь несколько CaseStage (Предварительный, Апелляция, Исполнение, Согласование и т. Д.), И каждый CaseStage может иметь один из статусов, таких как «Новый», «В процессе», «Закрыт», «Приговор», «В ожидании» и т. Д. .).
Я хочу получить все случаи, статус стадии которых «В процессе» или статус стадии не находится в стадии выполнения, только последняя стадия, статус которой «Решено». В результирующем наборе для каждого случая должна отображаться либо та стадия, которая находится в процессе «Выполняется», либо только последняя, которая является «Судейской» (не обе).
Ниже приведено то, что я пробовал до сих пор, ноон отображает как «В процессе», так и «Судебный».
SELECT
TOP (100) PERCENT
dbo.CaseStages.stage_name,
dbo.CaseStages.stage_case_no,
dbo.CaseStages.case_type,
dbo.CaseStages.company_role,
dbo.CaseStages.stage_start_date,
dbo.CaseStages.stage_status,
dbo.CaseStages.case_id,
dbo.CaseMaster.file_number
FROM
dbo.CaseStages INNER JOIN
dbo.CaseMaster ON dbo.CaseStages.case_id = dbo.CaseMaster.id
WHERE
( dbo.CaseStages.stage_status = 'In Progress' )
OR
( dbo.CaseStages.stage_status <> 'In Progress')
AND
( dbo.CaseStages.stage_status = 'Adjudicated')
GROUP BY
dbo.CaseStages.stage_name,
dbo.CaseStages.stage_case_no,
dbo.CaseStages.case_type,
dbo.CaseStages.company_role,
dbo.CaseStages.stage_start_date,
dbo.CaseStages.stage_status,
dbo.CaseStages.case_id,
dbo.CaseMaster.file_number