SQL如何从同一查询中的公式结果中获取计数

时间:2017-06-12 19:20:29

标签: sql sql-server

我有一个查询,提供2个日期之间的年份数,并将其称为Covg作为查询中的标题

select PLANS,DATEDIFF(YEAR, STARTDT, EXPDT) Covg
from PA

这是有用的,并提供类似

的内容
Plans       Covg
Payback     5
Standard    3
Payback     5
Payback     3
etc.

然而,这是客户的结果。我需要知道有多少客户通过计划获得了1年,2年,3年,4年等的“covg” 当我试图为Covg添加一个Count时,我得到的信息是Covg不是一个列。这是真的,因为它是公式的结果

我该怎么做? 结果应该给我这样的例子

              (Yrs)          #Of customers with the covg
PLANS          Covg       TL_Count
Payback        1               123
Payback        2               56
Standard       1               24
Standard       3               48
Standard       5               325

我尝试过的最后一个查询错误是

SELECT PLANS, DATEDIFF(year,STARTDT,EXPDT) COVG, COUNT(*)TL_Count
FROM PA
Group by PLANS, TL_Count

1 个答案:

答案 0 :(得分:0)

尝试将GROUP BY更改为:

SELECT PLANS, DATEDIFF(year,STARTDT,EXPDT) COVG, COUNT(*) TL_Count
FROM PA
GROUP BY PLANS, DATEDIFF(year,STARTDT,EXPDT)

您需要在分组中使用日期函数,而不是COUNT(),因为它已经是聚合。