[英]Filter records from select query using select subquery result in SQL
我有一个选择查询,从中我可以得到结果。 我还有一张桌子,上面有一些记录。 我希望我的第一个查询结果集应该过滤我从表中获取的记录。
主选择查询
select ri.pkResourceItemsID,r.locationTimeZone,ss.minBookingPeriod,r.fkBusinessUnitID,r.fkLocationId,r.floor from tblResourceItems ri WITH (NOLOCK)
inner join Enterprise.tblRooms r WITH (NOLOCK) on ri.pkResourceItemsID=r.roomID
inner join tblBusinessUnit bu WITH (NOLOCK) on r.fkBusinessUnitID=bu.pkBusinessUnitID
inner join tblSiteSetup ss WITH (NOLOCK) on bu.pkBusinessUnitID=ss.fkBusinessUnitID
where ri.active=1
and ri.fkResourceID=1
and r.fkresourceId=1
and r.deliveryPoint=0
and bu.deployment=1
and bu.selfSelectRoom=0
and bu.active=1
and r.locationTimeZone = 'India Standard Time'
结果
第二个表
Select fkCondecoRoomID from SYNC.tblExternalRoomMaster where Active=1
结果
我添加了 AND 语句来过滤表结果,但它给了我一个错误。
and ri.pkResourceItemsID = (Select fkCondecoRoomID from SYNC.tblExternalRoomMaster where Active=1)
错误
子查询返回了 1 个以上的值。 当子查询跟随 =、!=、<、<=、>、>= 或当子查询用作表达式时,这是不允许的。
您只需要使用in
而不是=
如果子查询可以返回超过 1 行,这使得最后一部分查询类似于
and ri.pkResourceItemsID in (Select fkCondecoRoomID from SYNC.tblExternalRoomMaster where Active=1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.