Ich habe mehrere andere SO-Fragen durchsucht, aber ich kann immer noch nicht das richtige Ergebnis erhalten. Ich würde gerne alle Datensätze aus der Document
Tabelle basierend auf CaseId
und mit den neuesten Status
bekommen. Ich habe zwei Tabellen:sql für Status mit dem neuesten Datum
Dokument:
DocumentId | CaseId | Name
----------------------------------------
2 | 23 | Document 1
3 | 23 | Document 2
4 | 24 | Document 3
auditlog:
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
So das gewünschte Ergebnis für CaseId: 23
wäre:
Status | DocumentId | CaseId | Name
----------------------------------------------
Released | 2 | 23 | Document 1
Draft | 3 | 23 | Document 2
Ich habe haben schließen mit dieser Abfrage, aber das gibt mir nur die letzte aller Ergebnisse für CaseId 23
, anstatt die Gruppierung von 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
Es gibt nur einen Datensatz für 'DocumentId = 3' in der' AuditLog' Tabelle, und diese Platte hat 'Status = Draft'. Wie kommt es, dass du 'Aktiv' im Ergebnis hast? –
@GiorgosBetsos Wahrscheinlich wurde gerade mit dem Feld DocumentId verwechselt. –
@GiorgosBetsos Ja mein Fehler Ich habe das Ergebnis aktualisiert – user2884789