sql-server - 列“Book.Name”在选择列表中无效,因为它不包含在任一聚合函数中
问题描述
我正在我的数据库中发送下一个请求:
Select Book.Name as 'Book', Count([dbo].[Order].ShopperId) as 'Amount orders'
from Book, [dbo].[Order]
where Book.BookId = [dbo].[Order].BookId and [dbo].[Order].Amount = 5;
并得到下一个错误:
列“Book.Name”在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中
如何更改我的请求以使其生效?
解决方案
如果这是 SQL Server,试试这个
Select Book.Name as 'Book',
Count([dbo].[Order].ShopperId) as 'Amount orders'
from Book, [dbo].[Order]
where Book.BookId = [dbo].[Order].BookId and [dbo].[Order].Amount = 5
GROUP BY Book.Name;
或更好:
Select B.Name as 'Book',
Count(o.ShopperId) as 'Amount orders'
from [dbo].Book b JOIN [dbo].[Order] o ON b.BookId = o.BookId
where o.Amount = 5
GROUP BY Book.Name;
推荐阅读
- javascript - 如何修复:组件 ClassOverallPerComponent 不是任何 NgModule 的一部分
- css - 如何以 Bulma 方式垂直和水平居中一些内容?
- reactjs - 为什么我需要在 MobX 中使用 Context 或 Provider?
- selenium - 如何为
标签中包含的文本编写 xpath? - qt - 如何静态构建qtcharts?
- arrays - 如何通过间隔列表中的索引号访问元素?
- javascript - Fullcalendar 向事件添加工具提示
- rust - 为什么即使在未来解决之后,在循环块中使用克隆的超级客户端和 Tokio 期货?
- sql - 每个项目的最大日期
- java - Android中使用主机名的本地网络