• *check this brings results but can not find how to group them by WhsName*/

    DECLARE @DATE AS DATETIME;

    SET @DATE = GETDATE ();

    select P.ItemName, P.ItemCode,P.WhsName,

    [100] Sh,

    [101] TI,

    [102] Bod,

    [103] ST,

    [104] PR,

    [199] CO

    from (

    SELECT T0.[WhsCode],T2.[WhsName], T0.[ItemCode], T1.[ItemName],

    (ISNULL(SUM(M.InQty)-SUM(M.OutQty),0)) AS [Stock]

    FROM OINM M WITH (NOLOCK)

    INNER JOIN OITW T0 (NOLOCK) ON M.ItemCode=T0.ItemCode AND M.Warehouse=T0.WhsCode

    INNER JOIN OITM T1 (NOLOCK) ON T0.ItemCode = T1.ItemCode

    INNER JOIN OWHS T2 (NOLOCK) ON T0.WhsCode = T2.WhsCode

    WHERE M.DocDate <= @DATE AND M.ItemCode = '05031-101'

    GROUP BY T0.WhsCode, T2.WhsName, T0.ItemCode, T1.ItemName

    ) P

    PIVOT (

    SUM(Stock)

    FOR [WhsCode] IN ([100],[101],[102],[103],[104],[199])

    ) P

    ORDER BY P.ItemName, P.ItemCode