SQL Server 2008中的按问题分组?
我想在没有聚合函数的情况下对记录进行分组。到目前为止,我已经试过了,但不起作用SQL Server 2008中的按问题分组?,sql,sql-server-2008,Sql,Sql Server 2008,我想在没有聚合函数的情况下对记录进行分组。到目前为止,我已经试过了,但不起作用 select c.CustomerName, c.CustAddress, c.Phone,o.OrderDate,s.CreditEndDate from customer c inner join Orders o on c.ID=o.CustomerID inner join Sales s on s.OrderID = o.OrderNum group by c.CustomerName 因为
select c.CustomerName, c.CustAddress, c.Phone,o.OrderDate,s.CreditEndDate
from customer c
inner join Orders o on c.ID=o.CustomerID
inner join Sales s on s.OrderID = o.OrderNum
group by c.CustomerName
因为数据需要分组:(在分组之前)
有什么帮助吗?提前谢谢
它显示了错误
列“customer.CustAddress”在选择列表中无效,因为它
未包含在聚合函数或GROUP BY中
条款
在这种情况下,我不需要任何聚合函数,只需将同一记录分组为一行。一个
group by
子句通常与一个或多个聚合函数一起使用,例如sum()
或count()
等
只有在不使用聚合函数的情况下才可以使用它,因为您不想在结果集中重复值,这相当于使用
DISTINCT
keywork。在这种情况下,您需要在group by
中的select语句中包含所有列,因为您没有给出所需的c.CustAddress、c.Phone、o.OrderDate、s.CreditEndDate的指示。您选择的是5个非聚合列,但仅按其中一个进行分组。你不能那样做。它将尝试按客户名称
分组,但您从未告诉过它如何处理客户地址
,电话
,订单日期
,信用结束日期
。感谢您提供的有用建议。
+---------+----------+------+------------+------------+
| Halima | Tegbared | 0917 | 2014-06-19 | 2015-09-05 |
+---------+----------+------+------------+------------+
| Halima | Tegbared | 0917 | 2014-06-19 | 2015-09-07 |
| Halima | Tegbared | 0917 | 2015-09-05 | 2015-09-07 |
| Halima | Tegbared | 0917 | 2015-09-05 | 2015-09-07 |
| Jemila | Salimiya | +96 | 2015-09-07 | 2015-09-07 |
| Jemila | Salimiya | +96 | 2015-09-09 | 2015-09-07 |
| Jemila | Salimiya | +96 | 2015-09-09 | 2015-09-07 |
| onetime | xx | xx | 2015-09-07 | 2015-09-07 |
| onetime | xx | xx | 2015-09-07 | 2015-09-07 |
| Jemila | Salimiya | +96 | 2015-09-09 | 2015-09-07 |
| Jemila | Salimiya | +96 | 2015-09-09 | 2015-09-07 |
| Jemila | Salimiya | +96 | 2015-09-09 | 2015-09-07 |
| Halima | Tegbared | 0917 | 2015-09-05 | 2015-09-08 |
| Halima | Tegbared | 0917 | 2015-09-05 | 2015-09-08 |
| Halima | Tegbared | 0917 | 2015-09-05 | 2015-09-08 |
| Halima | Tegbared | 0917 | 2015-09-05 | 2015-09-08 |
+---------+----------+------+------------+------------+