*#*列名无效*#*SQL Server 问题高分求助

来源:百度知道 编辑:UC知道 时间:2024/05/14 17:10:52
我有一个SQL Server 的语句,总提示:列名 '出库总量' 无效,列名 '入库总量' 无效。语句如下:
SELECT A.料号 as 料号,(B.出库总量-A.入库总量) as 库存 from (select 料号,max(出库时间) as 最晚出库日期,sum(出库数量) as 出库总量 From chuku GROUP BY 料号) as A inner join (select 料号,max(入库时间) as 最晚入库日期,sum(入库数量) as 入库总量 from ruku group by 料号) as B on A.料号 = B.料号 having B.入库总量-A.出库总量>10 and datediff(d,B.最晚入库日期,A.最晚出库日期)>100

把你的语句排了下
SELECT A.料号 as 料号,
(B.出库总量-A.入库总量) as 库存
from (
select 料号,
max(出库时间) as 最晚出库日期,
sum(出库数量) as 出库总量
From chuku GROUP BY 料号
) as A
inner join
(select 料号,max(入库时间) as 最晚入库日期,sum(入库数量) as 入库总量 from ruku group by 料号) as B
on A.料号 = B.料号 having B.入库总量-A.出库总量>10
and datediff(d,B.最晚入库日期,A.最晚出库日期)>100

解析纪录集A如下
(
select 料号,
max(出库时间) as 最晚出库日期,
sum(出库数量) as 出库总量
From chuku GROUP BY 料号
) as A
出库总量 是A中的

B如下
(select 料号,max(入库时间) as 最晚入库日期,sum(入库数量) as 入库总量 from ruku group by 料号) as B
入库总量 是B中的

所以你原句子中的
SELECT A.料号 as 料号, (B.出库总量-A.入库总量) 肯定错误
改成
SELECT A.料号 as 料号, (A.出库总量-B.入库总量)

为什么不插入临时表中呢,这看得人眼花缭乱