[英]A subquery within a CASE Statement
So I'm trying to put a subquery within a CASE statement.所以我试图在 CASE 语句中放置一个子查询。 The subquery itself is working fine, but if I put it in another code it can't process.
子查询本身工作正常,但如果我把它放在另一个代码中,它就无法处理。 What can I do best to solve?
我能做的最好的事情是什么?
CASE WHEN dbo.T1.TYPE = 0
THEN dbo.Data.QTY * dbo.Data.SALESPRICE
ELSE
CASE WHEN dbo.T1.TYPE = 1
THEN dbo.Data.QTY *
(
SELECT dbo.Data.ID,
CASE WHEN SUM(dbo.Data.QTY) = 0
THEN SUM(dbo.Data.SALESPRICE)
ELSE SUM(dbo.Data.SALESPRICE) / SUM(dbo.Data.QTY)
END AS REVph
FROM dbo.Data LEFT OUTER JOIN
dbo.T1ON dbo.Data.ID = dbo.T1.ID
WHERE (dbo.T1.TYPE = 1)
GROUP BY dbo.Data.ID
)
ELSE 0
END
END
You are using a subquery in a context where a single value is allowed.您在允许单个值的上下文中使用子查询。 Such a subquery is called a scalar subquery .
这样的子查询称为标量子查询。
However, the subquery is returning more than one column.但是,子查询返回的列不止一列。 That is not allowed.
这是不允许的。 A scalar subquery can only return one column and at most one row.
标量子查询只能返回一列和最多一行。
Your question is rather unclear on what you want to accomplish, so I can only explain the problem that you are having.您的问题对您要完成的工作相当不清楚,所以我只能解释您遇到的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.