我有 货物表
id sum WarehouseID //Warehouse是仑库,sum是货物存放的所占的容量
1 10 001
2 20 001
3 10 002仑库表
WarehouseID Capacity//仑库的总容量
001 100
002 20现在我想结果如下,
WarehouseID
001 70
002 10
就是现在仓库(如:001,002)还有多少剩于容量。
id sum WarehouseID //Warehouse是仑库,sum是货物存放的所占的容量
1 10 001
2 20 001
3 10 002仑库表
WarehouseID Capacity//仑库的总容量
001 100
002 20现在我想结果如下,
WarehouseID
001 70
002 10
就是现在仓库(如:001,002)还有多少剩于容量。
--> 数据库版本:
--> Microsoft SQL Server 2008 (RTM) - 10.0.1600.22
--> 测试数据:货物表
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'货物表')
AND type in (N'U'))
DROP TABLE 货物表
GO---->建表
create table 货物表([id] int,[sum] int,[WarehouseID] varchar(3))
insert 货物表
select 1,10,'001' union all
select 2,20,'001' union all
select 3,10,'002'
GO--> 数据库版本:
--> Microsoft SQL Server 2008 (RTM) - 10.0.1600.22
--> 测试数据:仑库表
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'仑库表')
AND type in (N'U'))
DROP TABLE 仑库表
GO---->建表
create table 仑库表([WarehouseID] varchar(3),[Capacity] int)
insert 仑库表
select '001',100 union all
select '002',20
GO--> 查询结果
SELECT * FROM 货物表
--> 删除表格
--DROP TABLE 货物表
--> 查询结果
SELECT a.WarehouseID,a.Capacity-sum(b.[sum]) FROM 仑库表 a join 货物表 b
on a.WarehouseID=b.WarehouseID
group by a.WarehouseID,a.Capacity
--> 删除表格
--DROP TABLE 仑库表
sum([sum])剩于容量
from(
select WarehouseID,-[sum] 货物表
union all
select WarehouseID,Capacity from 仑库表
)t
group by WarehouseID