Benutzer mit den meisten Antworten
Nur den letzten Wert ausgeben

Frage
-
Hallo,
ich versuche nun schon seit Tagen mir eine Abfrage zu bauen, diese sich aus zwei Tabellen Werte zusammenholt. Eine Komplettübersicht über alle Datensätze ist kein Problem. Ich brauche jedoch eine Auswertung diese mir nur die letzten Werte aller „Vorfälle“ (sortiert nach dem Feld Vorfälle, Indatum) ausgibt.
Die Komplettübersicht wird mir über den SQL-Befehl angezeigt:SELECT dbo.VORFAELLEDETAILS.incident, dbo.FAELLE.step, dbo.VORFAELLEDETAILS.indate, dbo.FAELLE.TOTAL_DEALER_PARTS_C, dbo.FAELLE.TOTAL_CLAIM_COST
FROM dbo.FAELLE INNER JOIN
dbo.VORFAELLEDETAILS ON dbo.FAELLE.step_id = dbo.VORFAELLEDETAILS.process_step_id
Ich hoffe, dass ich mein Problem aussagekräftig beschrieben habe.
Wer könnte mir hier helfen?Als Beispiel hier ein Bild - nur die markierte Zeile soll ausgegeben werden:
Antworten
-
Hi,
im einfachsten Fall kannst Du das über SELECT TOP 1 ... FROM ... mit entsprechender ORDER BY und ggfs. GROUP BY Klausel machen. Ggfs. sinnvoller und für spätere Anforderungen besser erweiterbar wäre aber sowas:
WITH Query AS ( SELECT vd.incident, f.step, vd.indate, f.TOTAL_DEALER_PARTS_C, f.TOTAL_CLAIM_COST, ROW_NUMBER() OVER ( PARTITION BY vd.incident ORDER BY vd.indate DESC ) AS RowNumber FROM FAELLE f INNER JOIN VORFAELLEDETAILS vd ON f.step_id = vd.process_step_id ) SELECT * FROM Query WHERE RowNumber = 1
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport- Als Antwort markiert sbrand Mittwoch, 10. Oktober 2018 13:11
Alle Antworten
-
Hi,
im einfachsten Fall kannst Du das über SELECT TOP 1 ... FROM ... mit entsprechender ORDER BY und ggfs. GROUP BY Klausel machen. Ggfs. sinnvoller und für spätere Anforderungen besser erweiterbar wäre aber sowas:
WITH Query AS ( SELECT vd.incident, f.step, vd.indate, f.TOTAL_DEALER_PARTS_C, f.TOTAL_CLAIM_COST, ROW_NUMBER() OVER ( PARTITION BY vd.incident ORDER BY vd.indate DESC ) AS RowNumber FROM FAELLE f INNER JOIN VORFAELLEDETAILS vd ON f.step_id = vd.process_step_id ) SELECT * FROM Query WHERE RowNumber = 1
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport- Als Antwort markiert sbrand Mittwoch, 10. Oktober 2018 13:11