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.