Angenommen, ich habe diese 3 Tabellen:SQL Server: Wählen Sie nur letzte Datensatz pro Kunde aus einer Join-Abfrage
Die ersten zwei Tabellen definieren Kunden verschiedener Typen, dh zweite Tabelle hat andere Spalten, die nicht in Tabelle 1 enthalten sind. Ich habe sie einfach gleich gelassen, um die Komplexität zu sparen.
Die dritte Tabelle definiert Bestellungen für beide Arten von Kunden. Jeder Kunde hat mehr als einen Auftrag
Ich mag die letzte Bestellung für jeden Kunden wählen, dh die Reihenfolge mit order_id
4 für customer
1, die auf 23/12/2016 und die Reihenfolge mit order_id
5 für customer
2 erstellt wurden, das erstellt wurde am 26/12/2016
habe ich versucht, so etwas wie diese:
select *
from customertype1
left join order on order.customer_id = customertype1.customer_id
order by order_id desc;
Aber das gibt mir mehrere Datensätze für jeden Kunden, wie ich gesagt habe ich oben für jeden customertype1
nur den letzten Auftrag wünsche.
können Sie CROSS APPLY und SELECT TOP 1 ... ORDER BY DateCreated DESC innerhalb der CROSS APPLY-Abfrage verwenden – Cato