他のいくつかの質問を検索しましたが、正しい結果が得られないようです。 Document
テーブルのすべてのレコードをCaseId
に基づいて取得し、最新の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
私が持っている私は2つのテーブルを持っています近くにこのクエリで、しかし、これが唯一のむしろDocumentId
によってグループ化するよりも、私にCaseId 23
ためのすべての結果の最新を与える:
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
することはあり '文書ID = 3 'のためのちょうど1つのレコードが' AuditLog'テーブルであり、この記録は、 'ステータス= Draft'を持っています。どのように結果に「アクティブ」がありますか? –
@GiorgosBetsosおそらくDocumentIdフィールドと混同されている可能性があります。 –
@GiorgosBetsosはい私の間違い私は結果を更新しました – user2884789