【发布时间】:2016-09-06 02:48:31
【问题描述】:
当我在 SQL Server 中尝试以下代码时,
SELECT
dbo.Category.CatNo as Category,
dbo.Category.Categaory as Name,
(select SUM(dbo.SALES.SELLINC) where (dbo.SALES.DATE BETWEEN '2016-07-17' AND '2016-07-23')) AS ActualSales,
(select SUM(dbo.SALES.SELLINC) where (dbo.SALES.DATE BETWEEN '2015-07-19' AND '2015-07-25')) AS LastYrVariance,
(select SUM(dbo.SALES.SELLINC) where (dbo.SALES.DATE BETWEEN '2016-01-01' AND '2016-09-05')) AS YrToDateActual,
(select SUM(dbo.SALES.SELLINC) where (dbo.SALES.DATE BETWEEN '2015-01-01' AND '2015-09-05')) AS LastYrToDateActual
FROM dbo.Category INNER JOIN
dbo.Dissection ON dbo.Category.CatNo = dbo.Dissection.CatNo INNER JOIN
dbo.Division ON dbo.Dissection.DivNo = dbo.Division.ID INNER JOIN
dbo.Departments ON dbo.Dissection.DeptNo = dbo.Departments.DeptID INNER JOIN
dbo.SALES ON dbo.Dissection.DissNo = dbo.SALES.CODE
WHERE (dbo.SALES.BRN = 1)
GROUP BY dbo.Category.CatNo, dbo.Category.Categaory
ORDER BY dbo.Category.CatNo
我收到以下错误消息,
消息 8120,第 16 级,状态 1,第 2 行 列 'dbo.Category.CatNo' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 中 子句。
有什么帮助吗?
【问题讨论】:
-
按“执行”时可能忘记选择(突出显示)最后两行?
-
Categaory在GROUP BY子句中的拼写错误。这不应该是那个特定错误的原因,但仍然...... -
@PhillipXT - 即使在选择列表中,它的拼写也是相同的
..dbo.Category.Categaory as Name.. -
是啊,一大早……我看错地方了……
-
子查询有一个 select 子句,带有一个 Sum() 函数,该函数尝试对子查询中未提及的表列中的值求和。 (子查询没有 FROM 子句)。这些子查询不应该是子查询,它们只需要是 Sum() 表达式
标签: sql sql-server tsql