我已经搜索了几个其他的问题,但我仍然无法得到正确的结果。我想根据CaseId
获得Document
表中的所有记录,并获得最近的Status
。我有两个表:SQL状态使用最近的日期
文件:
DocumentId | CaseId | Name
----------------------------------------
2 | 23 | Document 1
3 | 23 | Document 2
4 | 24 | Document 3
审计日志:
AuditLogId | Status | DocumentId | Date Created
---------------------------------------------------------
10 | Active | 2 | 4/2/2017
11 | Draft | 2 | 4/1/2017
12 | Released | 2 | 4/3/2017
13 | Draft | 3 | 4/17/2017
14 | Draft | 4 | 4/17/2017
所以对于CaseId: 23
期望的结果将是:
Status | DocumentId | CaseId | Name
----------------------------------------------
Released | 2 | 23 | Document 1
Draft | 3 | 23 | Document 2
我有关闭该查询,但是这只是给了我最近的所有结果为CaseId 23
,而不是由DocumentId
分组:
Select s.Status, lh.* from LegalHold lh join(
Select Status, LegalHoldId
FROM LegalHoldAuditLog
WHERE DateCreated = (select max(DateCreated)
from LegalHoldAuditLog)) s on lh.LegalHoldId = s.LegalHoldId
WHERE lh.CaseId = 23
没有为'DocumentId = 3'在'AuditLog'表只是一个记录,这个记录有'状态= Draft'。你如何在结果中拥有“主动”? –
@GiorgosBetsos可能只是与DocumentId字段混淆。 –
@GiorgosBetsos是的,我的错误,我已经更新了结果 – user2884789