0
我试图在SQL服务器中使用COUNT函数来计算每个客户的订单数量,这些数量与最终条件无关。SQL Server查询中的用户COUNT()在where子句中是独立的
select u.FullName, u.Id, o.FullAddress,
Price, Payment, o.Created, StartDelivery as Delivering,
[Status], o.Id,
(select COUNT(Orders.Id)
from Orders
full outer join Users
on Users.Id = Orders.CustomerId) as CountOfOrders
from orders o
full outer join users u
on o.CustomerId = u.Id
where [Status] = 0 and Payment = 1;
使用此查询我得到它看起来是总数的订单,它的数量是在每一行。我想按顾客分组,但不是根据最后的情况。我需要按客户分组的订单总数。
而与此查询:
select u.FullName, u.Id, o.FullAddress,
Price, Payment, o.Created, StartDelivery as Delivering,
[Status], o.Id, COUNT(*) OVER (PARTITION BY o.CustomerId) AS CountOfOrders
from orders o
full outer join users u
on o.CustomerId = u.Id
where [Status] = 2;
订单数进行分组,但根据在最后的条件。无论最终状况如何,我都需要按客户分组的订单总数。道歉重复我自己我只是想确保我很清楚:)
非常感谢您的任何输入和你的时间!
多数民众赞成在伟大的!它为我工作!非常感谢! – Milan4e 2015-02-07 14:27:05
不要忘记将它标记为@ Milan4e的正确答案 – 2015-02-07 14:42:09