Sql 分组结果的正确计数
我有一个程序:Sql 分组结果的正确计数,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个程序: ALTER PROCEDURE [dbo].[GetActualFeedbackQueueTree] @dtNow datetime as BEGIN select count(f.Id) as [Total], f.AccountCode, f.AccountName, f.Utc, f2.CityCode, f2.CityName from
ALTER PROCEDURE [dbo].[GetActualFeedbackQueueTree]
@dtNow datetime
as
BEGIN
select
count(f.Id) as [Total],
f.AccountCode,
f.AccountName,
f.Utc,
f2.CityCode,
f2.CityName
from
InnerPortal.Feedback.QueueFeedback f
left join
InnerPortal.Feedback.QueueFeedback f2
on
f2.AccountCode = f.AccountCode
where
(f.Done is null or f.Done = 0) and
(f.Busy is NULL or f.Busy = 0) and
((DATEPART(hour, DATEADD(HOUR, f.Utc, @dtNow)) >= 9 ) and
(DATEPART(hour, DATEADD(HOUR, f.Utc, @dtNow)) <= 20))
group by
f.AccountCode, f2.CityCode,
f2.CityName, f.AccountName, f.Utc
END
返回16行,但过程结果为256行
目标是获取使用相同帐户收集的行数。如何使其正确工作?
谢谢
软件:T-Sql,Ms Sql server 2012您肯定想要
count(distinct(f.Id))
如果将该表与其自身联接,并且该表有16行,其AccountCode为01507,则该值将乘以256。我确信您缺少一些父子关系,无法将此查询生成树。如果您发布一些示例数据和预期输出,可能有人会帮助您。您将表连接到
AccountCode
上的自身,我假设该表重复了多次,因此您得到了重复的行,这将增加计数并解释为什么会得到256行。
count(distinct(f.Id))