【发布时间】:2017-07-27 16:36:25
【问题描述】:
执行此存储过程时收到错误消息,消息是:
消息 116,级别 16,状态 1,过程 stpr_SP1,第 42 行 当不使用 EXISTS 引入子查询时,选择列表中只能指定一个表达式。 消息 116,级别 16,状态 1,过程 stpr_SP1,第 55 行 当子查询不使用 EXISTS 引入时,选择列表中只能指定一个表达式。
任何人都可以帮助解决这个问题,因为我被卡住了!下面是代码,谢谢。
SELECT CASE @GroupType WHEN 'Store' THEN
(select top 100 percent dbo.Table1.Field1
,dbo.Table1.Location
,count(dbo.Table1.URN) AS [OrderCount]
,convert(numeric(18,2),avg(dbo.Table1.Value)) AS [ValueAvg]
FROM dbo.Table1
GROUP BY dbo.Table1.Field1
,dbo.Table1.Location
ORDER BY dbo.Table1.Field1 ASC
,dbo.Table1.Location ASC)
WHEN 'Customer' THEN
(select top 100 percent dbo.Table1.Field1
,dbo.Table1.InvoiceCode
,dbo.Table1.Location
,count(dbo.Table1.URN) AS [OrderCount]
,convert(numeric(18,2),avg(dbo.Table1.Value)) AS [ValueAvg]
FROM dbo.Table1
GROUP BY dbo.Table1.Field1
,dbo.Table1.InvoiceCode
,dbo.Table1.Location
ORDER BY dbo.Table1.Field1 ASC
,dbo.Table1.InvoiceCode ASC
,dbo.Table1.Location ASC)
END
【问题讨论】:
-
标量子查询只能返回一列。您的代码将无法正常工作。也许你只想要
if而不是select case。 -
@GordonLinoff 和 1 行
-
您使用的是哪个 dbms? (该代码是特定于产品的。)
标签: sql stored-procedures