27,580
社区成员
发帖
与我相关
我的任务
分享
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([订单] int,[项] int,[物料] nvarchar(23),[订单数] int)
Insert #T
select 17001,1,N'A01',100 union all
select 17001,2,N'A01',100 union all
select 17001,3,N'A01',100
GO
if not object_id(N'Tempdb..#T2') is null
drop table #T2
Go
Create table #T2([入库单] int,[项] int,[物料] nvarchar(23),送货数 int)
Insert #T2
select 18001,1,N'A01',80 union all
select 18001,2,N'A01',80 union all
select 18001,3,N'A01',80 union all
select 18001,4,N'A01',55
Go
--测试数据结束
;WITH temp AS (
SELECT *,(SELECT SUM(送货数) FROM #T2) AS 送货数 FROM #T WHERE 项=1
UNION ALL
SELECT a.订单 ,
a.项 ,
a.物料 ,
( CASE WHEN b.送货数 - a.订单数 > a.订单数 THEN a.订单数
ELSE b.送货数 - a.订单数
END ) AS 订单数 ,
b.送货数- a.订单数
FROM #T a
JOIN temp b ON a.项 - 1 = b.项
)
SELECT 订单,项,物料,订单数 FROM temp