• Bhuvnesh,

    CROSS APPLY (

    VALUES(High, 'High', DATEPART(dw, CAST(DateID AS CHAR(8))))

    ,(Low, 'Low', DATEPART(dw, CAST(DateID AS CHAR(8))))) a (Val, Type, weekday)

    GROUP BY CompanyName, Type

    is similar to

    CROSS APPLY (

    select High as val , 'High' as Type , DATEPART(dw, CAST(DateID AS CHAR(8))) as Weekday

    union all

    select Low as val, 'Low' as Type , DATEPART(dw, CAST(DateID AS CHAR(8)))

    ) a

    GROUP BY CompanyName, Type

    Hope you understood..

    Thanks,

    Saurabh