查询生产单PO的位置

--查询生产单PO的位置

Declare @tmpWrkCtrId VarChar(20)

Declare curWrkCtrID# Cursor For Select WRKCTRID From ACT_JOBTABLE a

       inner join ACT_JOBTRANS b on b.ACT_JobId = a.ACT_JobId

       Where PRODID = 'WR0073262' and WRKCTRID != 'WC-PL' and b.ItemId = 'PO'

       group by WRKCTRID

 

IF EXISTS(SELECT Name FROM Sys.Objects WHERE Object_Id = OBJECT_ID('TempWrkCtr#') AND Type=N'U')

DROP Table TempWrkCtr#

Create Table TempWrkCtr#

(

    WrkCtrId VarChar(20),      

    ProdID Varchar(20),

    Qty int

)

 

Open curWrkCtrID#

Fetch Next From curWrkCtrID# into @tmpWrkCtrId

while @@FETCH_STATUS = 0

Begin     

    insert into TempWrkCtr#

       select x.Wrkctrid as WrkCtrId ,x.ProdId as ProdID,(x.Qty-y.Qty) as Qty

       from

           (select sum(OutQty) as Qty,WrkCtrId,ProdId

              from ACT_JOBTRANS a1 inner join ACT_JOBTABLE b1 on a1.ACT_JobId = b1.ACT_JobId

              where b1.ProdId = 'WR0073262' and a1.ItemId = 'PO' and WrkCtrId = @tmpWrkCtrId

              group by WrkCtrId,ProdId) x,

           (select sum(outQty) as Qty ,FrWrkCtrId,ProdId

              from ACT_JOBTRANS a inner join ACT_JOBTABLE b on a.ACT_JobId = b.ACT_JobId

              where b.FrWrkCtrId = @tmpWrkCtrId and  b.ProdId = 'WR0073262' and a.ItemId = 'PO'

              group by FrWrkCtrId,ProdId) y

       Where x.Qty-y.Qty >0

 

    insert into TempWrkCtr#

       select Wrkctrid,ProdId,OutQty Qty

       from ACT_JOBTRANS b1 inner join ACT_JOBTABLE b2 on b1.ACT_JobId = b2.ACT_JobId

       where b2.ProdId = 'WR0073262' and b1.ItemId = 'PO' and WrkCtrId=@tmpWrkCtrId and WrkCtrId

           not in(select FrWrkCtrId

                  from ACT_JOBTABLE a1 inner join ACT_JOBTRANS b1 on a1.ACT_JobId = b1.ACT_JobId

                  where a1.ProdId = 'WR0073262' and b1.ItemId = 'PO')

 

    Fetch Next From curWrkCtrID# into @tmpWrkCtrId

End

close curWrkCtrID#

Deallocate curWrkCtrID#

 

    select Sum(Qty) as Qty,WrkCtrId,ProdId

    from TempWrkCtr#

    Group by WrkCtrId,ProdId

 

IF EXISTS(SELECT Name FROM Sys.Objects WHERE Object_Id = OBJECT_ID('TempWrkCtr#') AND Type=N'U')

DROP Table TempWrkCtr#

原文地址:https://www.cnblogs.com/perock/p/2114700.html