I created an SP to query a temp table for a list of part numbers. The part number list would be used in a WHILE loop to return a record set of each part number row.
The part number list has 2 part numbers. The last part number is the only part number being returned.
Any help would be greatly appreciated.
The part number list has 2 part numbers. The last part number is the only part number being returned.
Any help would be greatly appreciated.
Code:
CREATE PROCEDURE [dbo].[sp_Ample_TEST] AS
BEGIN
CREATE TABLE #PartNoList
(
partno varchar(25) NULL
)
INSERT INTO #PartNoList (partno)
SELECT DISTINCT partno
FROM PhysicalInv
END
DECLARE @partno varchar(25)
SET @partno = NULL
SELECT DISTINCT @partno = [partno] FROM #PartNoList ORDER BY PartNo
WHILE (SELECT DISTINCT @@ROWCOUNT FROM #PartNoList) > 0
BEGIN
BEGIN TRAN
CREATE TABLE #ScanData
(
partno varchar(25) NULL,
OHlot varchar(20) NULL,
OHqty numeric(18,4) default 0,
PHlot varchar(20) NULL,
PHonhand numeric(18,4) default 0
)
INSERT INTO #ScanData (partno, OHlot, OHqty, PHlot, PHonhand)
SELECT coalesce(dbo.InvOnHand.partno, dbo.PhysicalInv.partno) as Partno, dbo.InvOnHand.lot as OHlot, dbo.InvOnHand.onhand as OHqty,
dbo.physicalInv.LOT as PHlot, dbo.PhysicalInv.onhand as PHonhand
FROM InvOnHand FULL OUTER JOIN PhysicalInv ON dbo.PhysicalInv.lot = dbo.InvOnHand.lot
WHERE @partno = dbo.PhysicalInv.partno OR @partno = dbo.InvOnHand.partno
DELETE FROM #PartNoList WHERE partno = @partno
COMMIT TRAN
SET @partno = NULL
SELECT DISTINCT @partno = [partno] FROM #PartNoList ORDER BY PartNo
SELECT partno, OHlot, OHqty, PHlot, PHonhand
FROM #ScanData
END
GO
Comment