Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- BEGIN
- SET NOCOUNT ON;
- SELECT DISTINCT
- ISNULL(T.PRODUCT_ID, 'NULL') AS [Commodity],
- ISNULL(T.PO_NO, 'NULL') AS [PO NO],
- ISNULL(T.LINE_NO, 'NULL') AS [LINE NO],
- QUOTENAME(T.DESCRIPTION, '"') AS [PO Line Description],
- QUOTENAME(C.DESCRIPTION, '"') AS [Commodity Description],
- ISNULL(T.FY, 'NULL') AS [Fiscal Year],
- PH.Vendor_ID AS [Vendor ID],
- QUOTENAME (V.Vendor_Name, '"') AS [Vendor Name],
- T.QUANTITY,
- T.UNIT_COST,
- T.QUANTITY*T.UNIT_COST AS [Line Amount],
- T.Created_Date,
- (Select CAST(0.00 as numeric(10,2))) AS Sub_Total_Cost -- = 0
- INTO ##TmpPOReport
- FROM dbo.FI_REQ_PO_ITEMS T
- INNER JOIN dbo.FI_VENDOR FV ON T.INST_ID=FV.INST_ID
- INNER JOIN dbo.FI_REQ_PO_HEADER PH ON T.PO_NO=PH.PO_NO
- INNER JOIN dbo.FI_VENDOR V ON PH.VENDOR_ID=V.VENDOR_ID
- INNER JOIN dbo.FI_COMMODITY C ON T.PRODUCT_ID=C.FI_COMMODITY_CODE
- WHERE T.INST_ID = 'SC00' AND
- T.FY = '2015' AND
- V.VENDOR_TYPE = 'V' AND
- T.PO_NO IS NOT NULL AND
- (T.PRODUCT_ID <> '' AND T.PRODUCT_ID IS NOT NULL)
- AND T.QUANTITY*T.UNIT_COST BETWEEN '1000' AND '20000'
- Order By Commodity
- DECLARE @PID varchar(15)=00,
- @QUANTITY int,
- @UNIT_COST numeric(10,2),
- @PrevID varchar(15),
- @CreateDate datetime,
- @PrevDate datetime = getdate(),
- @RowAmount numeric(10,2),
- @SubTotal numeric(10,2) = 0.00
- SET NUMERIC_ROUNDABORT OFF;
- WHILE EXISTS(Select TOP 1 * FROM ##TmpPOReport WHERE Sub_Total_Cost = 0.00)
- BEGIN
- SET @RowAmount = (Select TOP 1 (QUANTITY * UNIT_COST) FROM ##TmpPOReport WHERE Sub_Total_Cost = 0.00)
- SELECT TOP 1 @PID = Commodity, @CreateDate = Created_Date FROM ##TmpPOReport WHERE Sub_Total_Cost = 0.00
- IF(@PID = @PrevID)AND(@CreateDate <> @PrevDate)
- BEGIN
- SET @SubTotal += @RowAmount;
- UPDATE T SET Sub_Total_Cost = @SubTotal FROM ##TmpPOReport T WHERE T.Commodity = @PID AND T.Created_Date = @CreateDate
- SET @PrevID = @PID;
- SET @PrevDate = @CreateDate
- END
- ELSE
- BEGIN
- SET @SubTotal = @RowAmount;
- UPDATE T SET Sub_Total_Cost = @SubTotal FROM ##TmpPOReport T WHERE T.Commodity = @PID AND T.Created_Date = @CreateDate
- SET @PrevID = @PID;
- SET @PrevDate = @CreateDate
- END
- END
- SET NUMERIC_ROUNDABORT ON;
- SELECT * FROM ##TmpPOReport
- WHERE [Line Amount] BETWEEN '1000' AND '20000'
- DROP TABLE ##TmpPOReport
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement