Я бы попробовал это так, вы можете использовать оконную функцию row_number для принудительного ранжирования.Если вас интересует только 1 вещь на уникальный код товара или дом, вы заменяете интересующую вещь в предложении Partition by, а затем указываете, что вы хотите заказать, в предложении order by.Например, в приведенном ниже запросе интересующий элемент представляет собой ItemCode, и мы размещаем заказы на складе и на складе (я предполагаю, что вы хотите видеть элементы с большим количеством записей, чем меньше, но вы можете удалить desc, если вам это подходит.потребности.
select * from
(
SELECT row_number()over(partition by i.Itemcode order by g.warehouse, g.aantal desc) as rowno, i.ItemCode, g.warehouse, SUM(g.aantal) AS Voorraad, MAX(CASE WHEN g.transtype = 'N' THEN g.sysmodified ELSE NULL END) AS LastDate
FROM dbo.gbkmut AS g INNER JOIN dbo.Items AS i
ON g.artcode = i.ItemCode AND g.reknr = i.GLAccountDistribution AND (
g.transtype = 'N' OR
(g.transtype = 'B' AND
g.transsubtype = 'B' AND
g.freefield1 NOT IN ('B', 'Q', 'W', 'K') AND
g.BlockItem = '0' AND
g.AllocationType = 'F') OR ( g.transtype = 'B' AND g.transsubtype = 'B' AND g.freefield1 = 'V' AND g.AllocationType = 'B'))
WHERE g.transtype = 'N' AND (i.ItemCode = 'TESTARTIKEL' OR i.ItemCode = 'IQ7-60-2-INT') GROUP BY i.ItemCode, g.warehouse, g.LinkedLine
) x where rowno=1;