我遇到子查询问题。子查询单独工作;我需要逻辑来生成我需要的数据集。但是当我尝试将它用作数据集时,我得到以下错误。显然,我可以通过连接来实现这一点,但我需要这个特定的解决方案来采用子查询方法。我正在使用SQLServer 2008 R2。
select BK.book_id
from bkinfo.books BK
where BK.book_id in
(
**select OD.book_id, sum(OD.quantity) as TotSales** see error below
from
bkorders.order_details OD
group by
OD.book_id
having
sum(OD.quantity) > 500
)
错误消息: 当未使用EXISTS
引入子查询时,只能在选择列表中指定一个表达式答案 0 :(得分:0)
IN子句需要一个只返回一列的查询。试试这个,2008支持CTE:
;with cte as
(
select
OD.book_id,
sum(OD.quantity) as TotSales
from bkorders.order_details OD
group by OD.book_id
having sum(OD.quantity) > 500
)
select c.book_id, c.TotSales
from cte c
join bkinfo.books bk on bk.book_id = c.book_id