Если вы ищете результат для несоответствующей записи в таблице Admit
, вам необходимо A
в качестве admit_disch, тогда сработает следующее.
Просмотр ваших выходных данных соответствует записив верхнем порядке, затем по дате, поэтому я добавил столбец ManualOrder
, чтобы исправить эту проблему:
SELECT cono, [date], resno, admit_disch, in_out
FROM (
SELECT S.cono, S.[date], S.resno,
CASE WHEN A.admit_disch IS NOT NULL THEN 1 ELSE 0 END AS ManualOrder,
COALESCE(A.admit_disch, 'A') AS admit_disch,
S.in_out
FROM [Status] S
LEFT JOIN Admit A ON A.cono = S.cono
AND A.resno = S.resno
AND A.date = S.date
) Q
ORDER BY ManualOrder DESC, [date] DESC
Демонстрация на db <> fiddle