11,849
社区成员
发帖
与我相关
我的任务
分享
CREATE TABLE Orderdata(orderid INT ,name NVARCHAR(10),Packing NVARCHAR(20))
GO
CREATE TABLE OrderTo(ordertoid INT ,orderid INT ,number INT ,Comefrom NVARCHAR(20))
GO
CREATE TABLE OrderOut(orderoutid INT ,orderid INT ,number INT ,Comefrom NVARCHAR(20))
GO
INSERT INTO Orderdata
SELECT 1,'苹果' ,'散装'
UNION ALL
SELECT 2,'香蕉' ,'袋装'
INSERT INTO OrderTo
SELECT 1,1,400 ,'北京'
UNION ALL
SELECT 2,1,200 ,'天津'
UNION ALL
SELECT 3,2,150 ,'山西'
UNION ALL
SELECT 4,2,120 ,'陕西'
INSERT INTO OrderOut
SELECT 1,1,50 ,'重庆'
UNION ALL
SELECT 2,1,30 ,'上海'
UNION ALL
SELECT 3,2,40 ,'广州'
UNION ALL
SELECT 4,2,60 ,'云南'
select Orderdata.OrderId,Name ,Packing ,ISNULL(t1.入库数量,0)-ISNULL(t2.出库数量,0)
from Orderdata
left join(select orderid,sum(number) AS 入库数量 from OrderTo group by orderid ) AS T1 ON Orderdata.orderid=T1.orderid
left join(select orderid,sum(number) AS 出库数量 from OrderOut group by orderid ) AS T2 ON Orderdata.orderid=T2.orderid