• oh, no it's just brief explanation so you can see detail below.

    Alter Proc rsp_IC_PackingList_CrossTab (@po_no nvarchar(32))

    AS

    BEGIN

    DECLARE cShips CURSOR FOR

    SELECT ShipmentDate,Id From tab_ic_packing_list_shipment

    WHERE PackingListNo=@po_no

    ORDER BY 1

    Declare @sql as varchar( 8000)

    Set @sql='SELECTdbo.tab_IC_Packing_List_Detail.ItemCode,

    (SELECT Description

    FROM dbo.tab_ic_itemcode

    WHERE dbo.tab_Ic_itemcode.itemcode = dbo.tab_IC_Packing_List_Detail.ItemCode) AS Description,

    dbo.tab_IC_Packing_List_Detail.SizeGroupID,

    dbo.tab_IC_Packing_List_Detail.Cost,

    dbo.tab_IC_Packing_List_Detail.Qty,

    dbo.tab_IC_Packing_List_Detail.Discount,

    dbo.tab_IC_Packing_List_Detail.Qty * Cost * (1-Discount) as GrantTotal,

    dbo.tab_IC_Packing_List_Detail.FOC,

    dbo.tab_IC_Packing_List_Detail.Qty + dbo.tab_IC_Packing_List_Detail.FOC as PoFOC,

    dbo.tab_IC_Packing_List_Detail.CreateDate,' + char(13)

    --WHERE state = ORDER BY 1

    DECLARE @ShipmentDate DateTime

    Declare @id as varchar(5000)

    OPEN cShips

    FETCH NEXT FROM cShips

    INTO @ShipmentDate,@id

    Declare @i as int

    Set @i=0

    WHILE @@FETCH_STATUS = 0

    BEGIN

    set @i=@i+1

    Set @sql=@sql + ' SUM(CASE ShipmentId WHEN '+ char(39)+@id+char(39)+' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty ELSE 0 END) AS ShipQty'+Cast(@i as varchar) +','+char(13)

    Set @sql=@sql+' SUM(CASE ShipmentId WHEN '+ char(39)+@id+char(39)+' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Foc ELSE 0 END) AS ShipFoc'+Cast(@i as varchar) +','+char(13)

    Set @sql=@sql+' SUM(CASE ShipmentId WHEN '+ char(39)+@id+char(39)+' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty*Cost*(1-Discount) ELSE 0 END) AS ShipAmt'+Cast(@i as varchar) +','+char(13)

    FETCH NEXT FROM cShips

    INTO @ShipmentDate,@id

    END

    Close cShips

    Deallocate cShips

    Set @sql=@sql+ '(select Sum(QtyInMainUnit)

    FROM tab_IC_Item_In_Location

    WHERE

    tab_IC_Item_In_Location.ItemCode=dbo.tab_IC_Packing_List_Detail.ItemCode AND

    tab_IC_Item_In_Location.SizeGroupID=dbo.tab_IC_Packing_List_Detail.SizeGroupID) As StockBalance,

    (Select sum(QtyInMainUnit)/9

    From tab_SO_Invoice_Summary

    WHERE

    tab_SO_Invoice_Summary.Item=tab_IC_Packing_List_Detail.ItemCode And

    tab_SO_Invoice_Summary.SizeGroupId=tab_IC_Packing_List_Detail.SizeGroupId And

    tab_SO_Invoice_Summary.CreateDate Between DateAdd(m,-9,tab_IC_Packing_List_Detail.CreateDate)AND tab_IC_Packing_List_Detail.CreateDate) As Avg9Month,

    tab_IC_Packing_List_Detail.Remark ' + char(13)

    Set @sql=@sql+' FROMdbo.tab_IC_Packing_List_Detail INNER JOIN dbo.tab_IC_Packing_List_Shipment_Detail

    ON dbo.tab_IC_Packing_List_Detail.TransID = dbo.tab_IC_Packing_List_Shipment_Detail.PODetailID' + char(13)

    Set @sql=@sql+' WHERE dbo.tab_IC_Packing_List_Detail.PackingListNo='+ char(39)+ @po_no + char(39) + char(13)

    Set @sql=@sql+'GROUP BY

    dbo.tab_IC_Packing_List_Detail.ItemCode,

    dbo.tab_IC_Packing_List_Detail.SizeGroupID,

    dbo.tab_IC_Packing_List_Detail.Cost,

    dbo.tab_IC_Packing_List_Detail.Qty,

    dbo.tab_IC_Packing_List_Detail.Discount,

    dbo.tab_IC_Packing_List_Detail.FOC,

    dbo.tab_IC_Packing_List_Detail.CreateDate,

    dbo.tab_IC_Packing_List_Detail.Remark'

    print(@sql)

    exec (@sql)

    END

    GO

    OUTPUT:

    SELECTdbo.tab_IC_Packing_List_Detail.ItemCode,

    (SELECT Description

    FROM dbo.tab_ic_itemcode

    WHERE dbo.tab_Ic_itemcode.itemcode = dbo.tab_IC_Packing_List_Detail.ItemCode) AS Description,

    dbo.tab_IC_Packing_List_Detail.SizeGroupID,

    dbo.tab_IC_Packing_List_Detail.Cost,

    dbo.tab_IC_Packing_List_Detail.Qty,

    dbo.tab_IC_Packing_List_Detail.Discount,

    dbo.tab_IC_Packing_List_Detail.Qty * Cost * (1-Discount) as GrantTotal,

    dbo.tab_IC_Packing_List_Detail.FOC,

    dbo.tab_IC_Packing_List_Detail.Qty + dbo.tab_IC_Packing_List_Detail.FOC as PoFOC,

    dbo.tab_IC_Packing_List_Detail.CreateDate,

    SUM(CASE ShipmentId WHEN '301CB3A5-382E-486D-9074-A35304A1A99B' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty ELSE 0 END) AS ShipQty1,

    SUM(CASE ShipmentId WHEN '301CB3A5-382E-486D-9074-A35304A1A99B' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Foc ELSE 0 END) AS ShipFoc1,

    SUM(CASE ShipmentId WHEN '301CB3A5-382E-486D-9074-A35304A1A99B' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty*Cost*(1-Discount) ELSE 0 END) AS ShipAmt1,

    SUM(CASE ShipmentId WHEN 'F66634BC-9709-4F0E-961B-2B01C7A97943' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty ELSE 0 END) AS ShipQty2,

    SUM(CASE ShipmentId WHEN 'F66634BC-9709-4F0E-961B-2B01C7A97943' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Foc ELSE 0 END) AS ShipFoc2,

    SUM(CASE ShipmentId WHEN 'F66634BC-9709-4F0E-961B-2B01C7A97943' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty*Cost*(1-Discount) ELSE 0 END) AS ShipAmt2,

    SUM(CASE ShipmentId WHEN '31796E84-5C81-450E-AB1F-1CA6BCB75473' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty ELSE 0 END) AS ShipQty3,

    SUM(CASE ShipmentId WHEN '31796E84-5C81-450E-AB1F-1CA6BCB75473' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Foc ELSE 0 END) AS ShipFoc3,

    SUM(CASE ShipmentId WHEN '31796E84-5C81-450E-AB1F-1CA6BCB75473' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty*Cost*(1-Discount) ELSE 0 END) AS ShipAmt3,

    SUM(CASE ShipmentId WHEN '25F67ED1-0151-4AA9-833B-E2C749852BE0' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty ELSE 0 END) AS ShipQty4,

    SUM(CASE ShipmentId WHEN '25F67ED1-0151-4AA9-833B-E2C749852BE0' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Foc ELSE 0 END) AS ShipFoc4,

    SUM(CASE ShipmentId WHEN '25F67ED1-0151-4AA9-833B-E2C749852BE0' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty*Cost*(1-Discount) ELSE 0 END) AS ShipAmt4,

    SUM(CASE ShipmentId WHEN '61CE059D-04CF-455E-A091-D09961DBA8C3' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty ELSE 0 END) AS ShipQty5,

    SUM(CASE ShipmentId WHEN '61CE059D-04CF-455E-A091-D09961DBA8C3' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Foc ELSE 0 END) AS ShipFoc5,

    SUM(CASE ShipmentId WHEN '61CE059D-04CF-455E-A091-D09961DBA8C3' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty*Cost*(1-Discount) ELSE 0 END) AS ShipAmt5,

    SUM(CASE ShipmentId WHEN 'AAC92855-89B2-41A5-B9D8-D84D47499D1D' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty ELSE 0 END) AS ShipQty6,

    SUM(CASE ShipmentId WHEN 'AAC92855-89B2-41A5-B9D8-D84D47499D1D' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Foc ELSE 0 END) AS ShipFoc6,

    SUM(CASE ShipmentId WHEN 'AAC92855-89B2-41A5-B9D8-D84D47499D1D' THEN dbo.tab_IC_Packing_List_Shipment_Detail.Qty*Cost*(1-Discount) ELSE 0 END) AS ShipAmt6,

    (select Sum(QtyInMainUnit)

    FROM tab_IC_Item_In_Location

    WHERE

    tab_IC_Item_In_Location.ItemCode=dbo.tab_IC_Packing_List_Detail.ItemCode AND

    tab_IC_Item_In_Location.SizeGroupID=dbo.tab_IC_Packing_List_Detail.SizeGroupID) As StockBalance,

    (Select sum(QtyInMainUnit)/9

    From tab_SO_Invoice_Summary

    WHERE

    tab_SO_Invoice_Summary.Item=tab_IC_Packing_List_Detail.ItemCode And

    tab_SO_Invoice_Summary.SizeGroupId=tab_IC_Packing_List_Detail.SizeGroupId And

    tab_SO_Invoice_Summary.CreateDate Between DateAdd(m,-9,tab_IC_Packing_List_Detail.CreateDate)AND tab_IC_Packing_List_Detail.CreateDate) As Avg9Month,

    tab_IC_Packing_List_Detail.Remark

    FROMdbo.tab_IC_Packing_List_Detail INNER JOIN

    dbGROUP BY

    dbo.tab_IC_Packing_List_Detail.ItemCode,

    dbo.tab_IC_Packing_List_Detail.SizeGroupID,

    dbo.tab_IC_Packing_List_Detail.Cost,

    dbo.tab_IC_Packing_List_Detail.Qty,

    dbo.tab_IC_Packing_List_Detail.Discount,

    dbo.tab_IC_Packing_List_Detail.FOC,

    dbo.tab_IC_Packing_List_Detail.CreateDate,

    dbo.tab_IC_Packing_List_Detail.Remark

    Server: Msg 156, Level 15, State 1, Line 23

    Incorrect syntax near the keyword 'BY'.