-- DDLDECLARE @T TABLE (RecordID INT, ItemID INT, MaxOfCost MONEY)-- Consumable sample dataINSERT INTO @TSELECT 43392,3880,$50.00UNION ALL SELECT 39056,3881,$93.75UNION ALL SELECT 33941,3881,$97.50UNION ALL SELECT 33970,3881,$97.50UNION ALL SELECT 38950,3881,$98.75UNION ALL SELECT 40417,3881,$96.56UNION ALL SELECT 36491,3882,$30.00UNION ALL SELECT 37265,3883,$6.50UNION ALL SELECT 35054,3883,$4.50UNION ALL SELECT 33658,3884,$14.94UNION ALL SELECT 36585,3884,$18.77UNION ALL SELECT 33134,3884,$14.75;WITH MyData AS ( SELECT RecordID, ItemID, MaxOfCost ,n=ROW_NUMBER() OVER (PARTITION BY ItemID ORDER BY MaxOfCost DESC) FROM @T)SELECT RecordID, ItemID, MaxOfCostFROM MyDataWHERE n = 1
CREATE Table #results ( RecordId Int ,ItemId Int ,cost Decimal(38,2) ) Insert into #resultsvalues (43392, 3880 ,50.00),(39056, 3881, 93.75),(33941, 3881, 97.50),(33970, 3881, 97.50),(38950, 3881, 98.75),(99999, 3881, 98.75),(40417, 3881, 96.56),(36491, 3882, 30.00),(37265, 3883, 6.50),(35054, 3883 ,4.50),(33658, 3884, 14.94),(36585, 3884,18.77),(33134, 3884, 14.75)Select r.RecordId,r.ItemId,r.costFrom #results rJOIN (Select ItemId,MAX(cost) mcost from #results group by ItemId) m on m.ItemId=r.ItemId and mcost=r.cost