Следующий запрос должен делать то, что вы хотите:
SELECT ITEM
,WH
,BATCH = STUFF( (SELECT DISTINCT ', ' + BATCH FROM table1 t WHERE t.ITEM = ITEM FOR XML PATH ('')),1,1,'')
FROM table1
GROUP BY ITEM, WH
Обновлено в соответствии с вашим примером кода,
SELECT T0.Item
,T0.Wh
,[BATCH REF NO] = STUFF((SELECT DISTINCT '; ' + US.Batch FROM OIBT US WHERE US.DOCNO = '3' AND US.Wh = Wh AND US.ITEM = ITEM FOR XML PATH('')), 1, 1, '')
FROM OIBT T0
WHERE T0.DOCNO = '3' AND T0.WH = 'FN'
GROUP BY T0.ITEM,T0.WH ORDER BY T0.Item