带计数和大小写语句的SQL查询

标签 sql count case

我需要找出在3个不同年份(2006年,2007年,2008年)的申请期结束日期(fpe)的180天内,有60天内(180天之内)有120天内提交(fil_dt)纳税申报单的人

下面的陈述将给我所有的岁月
我需要每年和每种可能性的计数。
无论如何,我可以做到这一点,而无需2个查询?

SELECT YEAR(A.FPE) AS "YEAR"
,CASE                                              
  WHEN DAYS(A.FIL_DT) - DAYS(A.FPE) < 60 THEN '2 ' 
  WHEN DAYS(A.FIL_DT) - DAYS(A.FPE) < 120 THEN '4 '
  WHEN DAYS(A.FIL_DT) - DAYS(A.FPE) < 180 THEN '6 '
  WHEN DAYS(A.FIL_DT) - DAYS(A.FPE) > 180 THEN '6+'
 END AS "NBR MTH"                                  
WHERE A.FPE BETWEEN '2006-01-01' AND '2008-12-31'

我需要你的帮助
多谢

最佳答案

然后写

   SELECT YEAR(A.FPE) AS "YEAR",
       Sum(CASE WHEN DAYS(A.FIL_DT) - DAYS(A.FPE) < 60 
                  THEN 1 Else 0 End) SixtydayCount,  
       Sum(CASE WHEN DAYS(A.FIL_DT) - DAYS(A.FPE) < 120 
                  THEN 1 Else 0 End) OneTwentyDayCount,
       Sum(CASE WHEN DAYS(A.FIL_DT) - DAYS(A.FPE) < 180 
                  THEN 1  Else 0 End) OneEightyDayCount,
       Sum(CASE WHEN DAYS(A.FIL_DT) - DAYS(A.FPE) > 180 
                  THEN 1 Else 0 End)  OverOneEightyCount  
    From Table A
    WHERE A.FPE BETWEEN '2006-01-01' AND '2008-12-31'
    Group By YEAR(A.FPE)

如果您希望120天计数和180天计数仅包括60岁以上且少于120岁的人,等等,那么,
     SELECT YEAR(A.FPE) AS "YEAR",
       Sum(CASE WHEN DAYS(A.FIL_DT) - DAYS(A.FPE) < 60 
                  THEN 1 Else 0 End) SixtydayCount,  
       Sum(CASE WHEN DAYS(A.FIL_DT) - DAYS(A.FPE) Between 60 And 119 
                  THEN 1 Else 0 End) OneTwentyDayCount,
       Sum(CASE WHEN DAYS(A.FIL_DT) - DAYS(A.FPE) Between 120 And 179 
                  THEN 1  Else 0 End) OneEightyDayCount,
       Sum(CASE WHEN DAYS(A.FIL_DT) - DAYS(A.FPE) >= 180 
                  THEN 1 Else 0 End)  OverOneEightyCount  
    From Table A
    WHERE A.FPE BETWEEN '2006-01-01' AND '2008-12-31'
    Group By YEAR(A.FPE)

关于带计数和大小写语句的SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1538214/

相关文章:

sql - Union SUM SQL 必须有自己的别名

mysql - 统计每个月的记录,包括结果为零的记录

c - 在 C 中如何使用大小写将枚举转换为字符串?

sql - 对空字符串使用 CASE

java - 通过在 Eclipse 中突出显示方法名称,将测试方法添加到现有测试用例

sql - TeraData SQL中 "TOP"和 "SAMPLE"之间的区别

sql - 我试图在 ADO Excel 中使用的这个 UPDATE 语句有什么问题?

sql - 我的 SQL Server 存储过程中的 BIT 值类型存在语法问题

hadoop - pig 脚本: count returns 0 on null field

mysql - FileMaker Pro ExecuteSQL 是否支持子查询