tSQL Error: Msg 8120, Level 16 on simple AdventureWorks 2008 R2 Database
tSQL Error: Msg 8120, Level 16 on simple AdventureWorks 2008 R2 Database
尝试在 tSql 上加速并做一个简单的,或者我认为是一个简单的陈述。此示例来自 Microsoft 的 Virtural Acdamey class“查询 Microsoft Sql Server 2012 数据库。这是查询:
Use AdventureWorks
SELECT SalesOrderID, YEAR(OrderDate) AS OrderYear
FROM Sales.SalesOrderHeader
WHERE (CustomerID = 29974)
GROUP BY SalesPersonID, YEAR(OrderDate)
HAVING (COUNT(*) > 1)
ORDER BY SalesPersonID, OrderYear
这是错误信息
消息 8120,级别 16,状态 1,第 2 行
'Sales.SalesOrderHeader.SalesOrderID' 列在 select 列表中无效,因为它未包含在聚合函数或 GROUP BY 子句中。
我正在使用 SQL Server 2008 R2。多谢你们。任何解释将不胜感激
我不太确定你要做什么,但看起来你正试图对销售人员进行分组。如果是这样你应该改变
SELECT SalesOrderID, YEAR(OrderDate) AS OrderYear
来自 Sales.SalesOrderHeader
哪里(客户 ID = 29974)
按 SalesPersonID、YEAR(OrderDate)分组
有(计数(*)> 1)
按 SalesPersonID、OrderYear 排序
至
SELECT SalesPersonID, YEAR(OrderDate) AS OrderYear
来自 Sales.SalesOrderHeader
哪里(客户 ID = 29974)
按 SalesPersonID、YEAR(OrderDate)分组
有(计数(*)> 1)
按 SalesPersonID、OrderYear 排序
如果您使用 Group 子句,您需要执行错误消息指示的操作,并将 select 中的列添加到 group 子句中,或者将其更改为 select 中的聚合函数.既然你说你只是在学习 SQL,这些都是值得研究的好话题。 SQL 中的聚合和分组。
select 所需的 column
并在 group by
中使用它
SELECT SalesPersonID, YEAR(OrderDate) AS OrderYear
FROM Sales.SalesOrderHeader
WHERE (CustomerID = 29974)
GROUP BY SalesPersonID, YEAR(OrderDate)
HAVING (COUNT(*) > 1)
ORDER BY SalesPersonID, OrderYear
尝试在 tSql 上加速并做一个简单的,或者我认为是一个简单的陈述。此示例来自 Microsoft 的 Virtural Acdamey class“查询 Microsoft Sql Server 2012 数据库。这是查询:
Use AdventureWorks
SELECT SalesOrderID, YEAR(OrderDate) AS OrderYear
FROM Sales.SalesOrderHeader
WHERE (CustomerID = 29974)
GROUP BY SalesPersonID, YEAR(OrderDate)
HAVING (COUNT(*) > 1)
ORDER BY SalesPersonID, OrderYear
这是错误信息 消息 8120,级别 16,状态 1,第 2 行 'Sales.SalesOrderHeader.SalesOrderID' 列在 select 列表中无效,因为它未包含在聚合函数或 GROUP BY 子句中。
我正在使用 SQL Server 2008 R2。多谢你们。任何解释将不胜感激
我不太确定你要做什么,但看起来你正试图对销售人员进行分组。如果是这样你应该改变
SELECT SalesOrderID, YEAR(OrderDate) AS OrderYear 来自 Sales.SalesOrderHeader 哪里(客户 ID = 29974) 按 SalesPersonID、YEAR(OrderDate)分组 有(计数(*)> 1) 按 SalesPersonID、OrderYear 排序
至
SELECT SalesPersonID, YEAR(OrderDate) AS OrderYear 来自 Sales.SalesOrderHeader 哪里(客户 ID = 29974) 按 SalesPersonID、YEAR(OrderDate)分组 有(计数(*)> 1) 按 SalesPersonID、OrderYear 排序
如果您使用 Group 子句,您需要执行错误消息指示的操作,并将 select 中的列添加到 group 子句中,或者将其更改为 select 中的聚合函数.既然你说你只是在学习 SQL,这些都是值得研究的好话题。 SQL 中的聚合和分组。
select 所需的 column
并在 group by
SELECT SalesPersonID, YEAR(OrderDate) AS OrderYear
FROM Sales.SalesOrderHeader
WHERE (CustomerID = 29974)
GROUP BY SalesPersonID, YEAR(OrderDate)
HAVING (COUNT(*) > 1)
ORDER BY SalesPersonID, OrderYear