已知有两个表,
表A:日期、班次、班别、切割合同号、切割轧批号,炉号、管号、切割长度、切割重量、
表B:日期、炉号、管号、产出合同号、产出长度、产出重量,
现有如下要求:
查询条件:日期起止、班次、班别、切割合同号、切割轧批号 查询结果数据列:日期、班次、班别、切割合同号、切割轧批号、炉号、管号、切割长度、切割重量、产出合同号、产出长度、产出重量、长度差、重量差。
其中,产出合同号、产出长度、产出重量 取自表B。
长度差=切割长度-产出长度
重量差=切割重量-产出重量 对于管号,到表A中查到日期、班次、班别、切割合同号、切割轧批号、炉号、切割长度、切割重量。
然后根据管号+炉号到表B中找产出合同号、产出长度、产出重量,如找到多条,按日期最早的一条,如未找到,则产出合同为空,产出长度、产出重量为0。 高手赐教,如何实现 请用 基本SQL 实现,因为 代码执行环境只支持基本SQL语句万分感谢
表A:日期、班次、班别、切割合同号、切割轧批号,炉号、管号、切割长度、切割重量、
表B:日期、炉号、管号、产出合同号、产出长度、产出重量,
现有如下要求:
查询条件:日期起止、班次、班别、切割合同号、切割轧批号 查询结果数据列:日期、班次、班别、切割合同号、切割轧批号、炉号、管号、切割长度、切割重量、产出合同号、产出长度、产出重量、长度差、重量差。
其中,产出合同号、产出长度、产出重量 取自表B。
长度差=切割长度-产出长度
重量差=切割重量-产出重量 对于管号,到表A中查到日期、班次、班别、切割合同号、切割轧批号、炉号、切割长度、切割重量。
然后根据管号+炉号到表B中找产出合同号、产出长度、产出重量,如找到多条,按日期最早的一条,如未找到,则产出合同为空,产出长度、产出重量为0。 高手赐教,如何实现 请用 基本SQL 实现,因为 代码执行环境只支持基本SQL语句万分感谢
A.日期,
A.班别,
A.班别,
A.切割合同号,
A.切割轧批号,
A.炉号,
A.管号,
A.切割长度,
A.切割重量,
B.产出合同号,
B.产出长度,
B.产出重量,
(A.切割长度-B.产出长度) as 长度差,
(A.切割重量-B.产出重量) as 重量差
from tableA A
inner join tableB B
on A.管号=B.管号
and A.炉号=B.炉号
select
A.日期,
A.班别,
A.班别,
A.切割合同号,
A.切割轧批号,
A.炉号,
A.管号,
A.切割长度,
A.切割重量,
(select top 1 产出合同号 from tableB where 管号=A.管号 and 炉号=A.炉号 order by 日期) as 产出合同号,
isnull((select top 1 产出长度 from tableB where 管号=A.管号 and 炉号=A.炉号 order by 日期),0) as 产出长度,
isnull((select top 1 产出重量 from tableB where 管号=A.管号 and 炉号=A.炉号 order by 日期),0) as 产出重量,
(A.切割长度-isnull((select top 1 产出长度 from tableB where 管号=A.管号 and 炉号=A.炉号 order by 日期),0)) as 长度差,
(A.切割重量-isnull((select top 1 产出重量 from tableB where 管号=A.管号 and 炉号=A.炉号 order by 日期),0)) as 重量差
from tableA A