César, intenta con este query:
DECLARE @Cad VARCHAR(MAX), @Query NVARCHAR(MAX)
SET @Cad = ''
SELECT @Cad = '[' + REPLACE((SELECT Whs AS [data()] FROM (SELECT distinct WhsCode Whs FROM OWHS T0) T order by 1 FOR XML PATH ('')), ' ', '],[') +']'
SET @Query= N'
SELECT * FROM
(SELECT T2.ItemCode, T2.ItemName, T3.ItmsGrpNam, T2.OnHand [Empresa], T1.WhsCode [Almacén], T1.OnHand
FROM OITW T1 inner join OITM T2 on T1.ItemCode = T2.ItemCode inner join OITB T3 on T2.ItmsGrpCod = T3.ItmsGrpCod
) [T0]
PIVOT ( sum(T0.OnHand) FOR T0.[Almacén] IN (' + @Cad + ')
)AS [Count] order by 1
'
EXECUTE SP_EXECUTESQL @Query
Nos comentas si es lo que comentas.
Saludos y suerte,
JC.







