【发布时间】:2021-07-22 08:14:55
【问题描述】:
我有一个选择查询,我可以从中得到结果。我还有一张有一些记录的表。 我希望我的第一个查询结果集应该过滤我从表中获取的记录。
主选择查询
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 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。
【问题讨论】:
-
错误是告诉你这里的问题,你不明白怎么办,我们可以尝试详细说明。另外,您为什么要针对 every 表发送
NOLOCK提示?如果您真的“需要”对每个表使用它,然后更改批处理的隔离级别,但我建议阅读Bad habits : Putting NOLOCK everywhere。 (恕我直言,我怀疑您是否会像熟悉查询提示的人那样理解您遇到的错误。) -
根据问题指南,请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。
标签: sql sql-server tsql