22,210
社区成员
发帖
与我相关
我的任务
分享
if object_id('[TBA]') is not null drop table [TBA]
go
create table [TBA] (商品编号 nvarchar(2),定价 int,出库数 int)
insert into [TBA]
select 'A',2,10 union all
select 'A',3,10 union all
select 'A',4,5 union all
select 'B',1,20 union all
select 'B',2,10
if object_id('[TBB]') is not null drop table [TBB]
go
create table [TBB] (商品编号 nvarchar(2),销售数 int)
insert into [TBB]
select 'A',15 union all
select 'B',5
select * from [TBA]
select * from [TBB]
WITH T AS ( SELECT TBA.* ,
数量 = TBB.销售数 - ( SELECT SUM(出库数)
FROM TBA A
WHERE A.商品编号 = TBA.商品编号
AND A.定价 <= TBA.定价
)
FROM TBA
INNER JOIN TBB ON TBA.商品编号 = TBB.商品编号
),
T2
AS ( SELECT * ,
CASE WHEN 数量 > 0 THEN 出库数
WHEN 数量 < 0 THEN 数量 + 出库数
END AS 销售数
FROM T
)
SELECT 商品编号 ,
定价 ,
出库数 ,
CASE WHEN 销售数 < 0 THEN 0
ELSE 销售数
END AS 销售数
FROM T2
/*
商品编号 定价 出库数 销售数
A 2 10 10
A 3 10 5
A 4 5 0
B 1 20 5
B 2 10 0*/