У меня есть три таблицы:Return Max Дата из многодисковой Таблицы Регистрации
Client
cid name
----------- --------------------
1 Abe
2 Bill
3 Charlie
ClientVisit
vid cid service
----------- ----------- --------------------
100 1 Eval
101 1 Eval
102 2 Consult
103 3 Eval
VisitApproval
aid vid approved_on
----------- ----------- -----------
90 100 12/01/2014
91 101 01/10/2015
92 102 02/12/2015
93 103 NULL
94 104 03/12/2014
Мне нужно создать выходной сигнал, который возвращает дату MAX в течение Eval и NULL, если он не существует:
Results
----------- -------------------- -------------------- ----------
1 Abe Eval 01/10/2015
2 Bill NULL NULL
3 Charlie Eval NULL
Ранее сегодня я столкнулся с подобным вопросом, только два таблиц и был в состоянии чтобы решить эту проблему, используя запрос, аналогичный ниже:
SELECT c.cid ,
c.name ,
CONVERT(VARCHAR(10), MAX(COALESCE(ce1.period_end, '1999-09-09')), 101) AS Auth_End
FROM Clients AS c
INNER JOIN ClientEpisode ce1 ON c.client_id = ce1.client_id
LEFT OUTER JOIN ClientEpisode ce2 ON c.client_id = ce2.client_id
AND ce1.episode_id < ce2.episode_id
Теперь я должен сделать то же самое, за исключением того, что я делаю это через три таблицы, а не два, и мой ум собирается взорваться. Что еще хуже, я думаю, что мне придется делать это три раза, раз для каждой службы. На данный момент я пытаюсь сохранить его простым, как мне получить максимальную дату из таблицы со многими?
Возможно, вы упростили свои таблицы и оставили кое-что, но, глядя на него логически, Approved_On является атрибутом визита, так почему бы не это поле в таблице VisitApproval ? – TommCatt