Beispiel-SQL-FIDDLE
1) Verwenden Sie CTE, um den Datensatz für den maximalen Versandcodewert basierend auf ARDivisionNo, CustomerNofor each Customers
zu erhaltenWITH cte AS (
SELECT*,
row_number() OVER(PARTITION BY ARDivisionNo, CustomerNo ORDER BY ShipToCode desc) AS [rn]
FROM t
)
Select * from cte WHERE [rn] = 1
2) Um den Datensatz zu löschen, verwenden Sie Delete query anstelle von Select und ändern Sie die Where-Klausel in rn> 1. Beispiel-SQL-FIDDLE
WITH cte AS (
SELECT*,
row_number() OVER(PARTITION BY ARDivisionNo, CustomerNo ORDER BY ShipToCode desc) AS [rn]
FROM t
)
Delete from cte WHERE [rn] > 1;
select * from t;