Code Snippetdeclare @DB_DormInfo table
(
dormId int identity(1,1),
buildArea varchar(20),
buildNo varchar(10),
dormNo varchar(10),
bedNum int,
buildElse varchar(100)
)
declare @DB_DormRegister table
(
stuNo varchar(20),
buildArea varchar(20),
buildNo varchar(10),
dormNo varchar(10)
)
insert @DB_DormInfo select '南区','1号楼','601',5,''
union all select '南区','2号楼','602',4,''
union all select '北区','1号楼','501',5,''
union all select '北区','2号楼','502',6,''
union all select '北区','3号楼','503',8,''
insert @DB_DormRegister select '0001','南区','2号楼','602'
union allselect '0002','南区','2号楼','602'
union allselect '0003','南区','2号楼','602'
union allselect '0004','南区','2号楼','602'
union allselect '0001','北区','2号楼','502'
union allselect '0001','北区','3号楼','503'
select
a.dormId,
a.buildArea,
a.buildNo,
a.dormNo,
a.bedNum
from @DB_DormInfo a
left join @DB_DormRegister b
on b.buildArea = a.buildArea
and b.buildNo = a.buildNo
and b.dormNo = a.dormNo
group by a.dormId,a.buildArea,a.buildNo,a.dormNo,a.bedNum
having a.bedNum > count(b.stuNo) |