2016-07-27 8 views
0

Derzeit gibt meine Abfrage drei Datensätze zurück. Der Grund dafür ist, dass die Tabelle CRT_STAT 3 übereinstimmende Datensätze gefunden hat. Ich würde gerne den Rekord mit dem neuesten Datum bekommen. Meine CRT_STAT Tabelle hat eine Spalte namens DISPOSITION_DATE.CROSS APPLY das neueste Datum erhalten

Ich muss eine Datumsüberprüfung in diesem Teil der Abfrage hinzufügen, wo es das aktuellste Datum der Gruppe von Datensätzen, die es findet (in diesem Fall drei), auswählt.

CROSS APPLY (
    SELECT * 
    FROM CCH_PUBLIC.dbo.CRT_STAT as crtStat 
    WHERE crtStat.TRS_IDN = o.TRS_IDN 
    AND crtSTat.DISPOSITION_DATE ='DATE IS MOST RECENT OF THE THREE RECORDS FOUND' 

) crtStat 

Was wäre der effizienteste Weg, dies zu tun?

+3

'TOP 1 ... ORDER BY DISPOSITION_DATE DESC'? –

Antwort

2

Nur um von 1 mit oben verwenden:

CROSS APPLY (
    SELECT top 1 * 
    FROM CCH_PUBLIC.dbo.CRT_STAT as crtStat 
    WHERE crtStat.TRS_IDN = o.TRS_IDN 
    order by crtSTat.DISPOSITION_DATE desc 
) crtStat 

Dies wird die letzte Platte zurück. Wenn Sie die Daten bereits von CRT_STAT abrufen, können Sie auch die Zeilennummer mit DISPOSITION_DATE verwenden, ohne dass Sie ein Kreuz anwenden müssen.

+0

Dude das ist so schlau. Ich wählte die TOP 1 vor, aber es gab mir nicht die Platte, die ich brauchte. Du bist der wahre MVP. Vielen Dank – Lostaunaum

Verwandte Themen