Home Forums SQL Server 2012 SQL Server 2012 - T-SQL Get original order quantities and dates, and find any changes or additions to quantities in subsequent order version(s) RE: Get original order quantities and dates, and find any changes or additions to quantities in subsequent order version(s)

  • I started creating a stored procedure in which i create two variable tables, one to store all the orders where version number = 1, and type = 2 (item) which I called

    DECLARE @SalesOrders_Version_First

    I then created another variable table that stored orders with a column Invoice = 1, type = 2 (item) and Quantity <> 0

    My issue really resides in finding the other versions of an Order in which an Item gets added, or a Quantity gets modified.

    Here is my stored proc. If you can help me figuring out some of the other code, that would be very kind.

    Thank you much.

    AS

    BEGIN

    DECLARE @SalesOrders_Version_First TABLE

    (

    [OrderNumber]NVARCHAR(20)

    ,[ItemNumber]NVARCHAR(20)

    ,[OrderDate]DATETIME

    ,[RequestedDeliveryDate]DATETIME

    ,[PromisedDeliveryDate] DATETIME

    ,[OrderQuantity]DECIMAL(38,18)

    ,[PostingDate]DATETIME

    ,[ShippedQuantity]DECIMAL(38,18)

    )

    INSERT INTO @SalesOrders_Version_First

    (

    [OrderNumber]

    ,[VersionNumber]

    ,[ItemNumber]

    ,[OrderDate]

    ,[RequestedDeliveryDate]

    ,[PromisedDeliveryDate]

    ,[OrderQuantity]

    ,[PostingDate]

    ,[ShippedQuantity]

    )

    SELECT DISTINCT

    sha.[Order Date]

    ,sha.[Requested Delivery Date]

    ,sha.[Promised Delivery Date]

    ,sla.Quantity

    ,sha.[Posting Date]

    ,sla.[Quantity Shipped]

    FROM NAV.dbo.[Sales Header Archive] sha

    LEFT OUTER JOIN NAV.dbo.[Sales Line Archive] sla

    ON sha.[No_] = sla.[Document No_]

    AND sha.[Version No_] = sla.[Version No_]

    WHERE sla.[Type] = 2

    AND sla.[Version No_] = 1

    AND sha.[No_] IN ('S19856', 'S20026')

    --AND sha.[No_] = 'S19856'

    --AND sha.[No_] = 'S20026'

    --AND sha.[No_] = 'S20302'

    DECLARE @SalesOrders_Version_Last TABLE

    (

    [OrderNumber]NVARCHAR(20)

    ,[VersionNumber]NVARCHAR(10)

    ,[ItemNumber]NVARCHAR(20)

    ,[OrderDate]DATETIME

    ,[RequestedDeliveryDate]DATETIME

    ,[PromisedDeliveryDate] DATETIME

    ,[OrderQuantity]DECIMAL(38,18)

    ,[PostingDate]DATETIME

    ,[ShippedQuantity]DECIMAL(38,18)

    )

    INSERT INTO @SalesOrders_Version_Last

    (

    [OrderNumber]

    ,[VersionNumber]

    ,[ItemNumber]

    ,[OrderDate]

    ,[RequestedDeliveryDate]

    ,[PromisedDeliveryDate]

    ,[OrderQuantity]

    ,[PostingDate]

    ,[ShippedQuantity]

    )

    SELECT DISTINCT

    s.[OrderNumber]

    ,s.[VersionNumber]

    ,s.[ItemNumber]

    ,s.[OrderDate]

    ,s.[RequestedDeliveryDate]

    ,s.[PromisedDeliveryDate]

    ,s.[QuantityOrdered]

    ,s.[PostingDate]

    ,s.[ShippedQuantity]

    FROM

    (

    SELECT DISTINCT

    sha.No_

    ,sha.[Version No_]

    ,sla.[No_]

    ,sha.[Order Date]

    ,sha.[Requested Delivery Date]

    ,sha.[Promised Delivery Date]

    ,sla.Quantity

    ,sha.[Posting Date]

    ,sla.[Quantity Shipped]

    FROM NAV.dbo.[Sales Header Archive] sha

    LEFT OUTER JOIN NAV.dbo.[Sales Line Archive] sla

    ON sha.[No_] = sla.[Document No_]

    AND sha.[Version No_] = sla.[Version No_]

    WHERE sha.[Posting Date] IS NOT NULL

    AND sla.[Type] = 2

    AND sla.[Completely Shipped] = 1

    AND sla.[Quantity Shipped] <> 0

    AND sha.[No_] IN ('S19856', 'S20026')

    --AND sha.[No_] = 'S19856'

    --AND sha.[No_] = 'S20026'

    --AND sha.[No_] = 'S20302'

    ) s

    --DECLARE @SalesOrders_Version_Changes TABLE

    --(

    --[OrderNumber]NVARCHAR(20)

    --,[ItemNumber]NVARCHAR(20)

    --,[OrderDate]DATETIME

    --,[RequestedDeliveryDate]DATETIME

    --,[PromisedDeliveryDate] DATETIME

    --,[OrderQuantity]DECIMAL(38,18)

    --,[PostingDate]DATETIME

    --,[ShippedQuantity]DECIMAL(38,18)

    --)

    --INSERT INTO @SalesOrders_Version_Changes

    --(

    --[OrderNumber]

    --,[ItemNumber]

    --,[OrderDate]

    --,[RequestedDeliveryDate]

    --,[PromisedDeliveryDate]

    --,[OrderQuantity]

    --,[PostingDate]

    --,[ShippedQuantity]

    --)

    --SELECT DISTINCT

    --sha.No_

    --,sla.[No_]

    --,sha.[Order Date]

    --,sha.[Requested Delivery Date]

    --,sha.[Promised Delivery Date]

    --,sla.Quantity

    --,sha.[Posting Date]

    --,sla.[Quantity Shipped]

    --FROM NAV.dbo.[CQC$Sales Header Archive] sha

    --LEFT OUTER JOIN NAV.dbo.[CQC$Sales Line Archive] sla

    --ON sha.[No_] = sla.[Document No_]

    --AND sha.[Version No_] = sla.[Version No_]

    --LEFT OUTER JOIN @SalesOrders_Version_First so_vf

    --ON sha.[No_] COLLATE DATABASE_DEFAULT = so_vf.[OrderNumber]

    --LEFT OUTER JOIN @SalesOrders_Version_Last so_vl

    --ON sha.[No_] COLLATE DATABASE_DEFAULT = so_vl.[OrderNumber]

    --WHERE sla.[Type] = 2

    --AND sla.[Version No_] NOT IN (SELECT VersionNumber FROM @SalesOrders_Version_First)

    --AND sla.[Quantity] NOT IN (SELECT OrderQuantity FROM @SalesOrders_Version_First)

    --AND sla.[Version No_] NOT IN (SELECT VersionNumber FROM @SalesOrders_Version_Last)

    --AND sla.[Quantity] NOT IN (SELECT ShippedQuantity FROM @SalesOrders_Version_Last)

    --AND sla.[Quantity Shipped] = 0

    --AND sha.[No_] IN ('S19856', 'S20026')

    --AND sha.[No_] = 'S19856'

    --AND sha.[No_] = 'S20026'

    --AND sha.[No_] = 'S20302'

    SELECT * FROM @SalesOrders_Version_First

    SELECT * FROM @SalesOrders_Version_Last

    --SELECT * FROM @SalesOrders_Version_Changes

    END