1

我的 SQL 表达式运行良好,可以显示几个月的结果,今年可以。但一年后我知道它将包括今年的结果。如何仅显示当年的结果?

select case month(timestamp_iso(STATUSDATE))
        when 1 then 'January'
        when 2 then 'February'
        when 3 then 'March'
        when 4 then 'April'
        when 5 then 'May'
        when 6 then 'Jun'
        when 7 then 'July'
        when 8 then 'August'
        when 9 then 'September' 
        when 10 then 'October'
        when 11 then 'November'
        when 12 then 'December'
    end as Month, 

    count (case when service='ADSL' then 1 end) as  ADSL,
    count (*) as ALL

from INCIDENT
group by month(timestamp_iso(STATUSDATE))

谢谢

4

2 回答 2

3

在末尾添加一个where子句:

where year(STATUSDATE) = year(current_timestamp)
于 2012-05-16T08:51:17.620 回答
2

只需添加一个where子句!

您可以使用它monthname来获取您在案例中所做的事情:

select MONTHNAME(timestamp_iso(STATUSDATE)) as Month, 
    count (case when service='ADSL' then 1 end) as  ADSL,
    count (*) as ALL

from INCIDENT
where year(STATUSDATE) = year(current_timestamp)
group by month(timestamp_iso(STATUSDATE))

有关更多信息,请查看THISTHIS

于 2012-05-16T08:53:22.313 回答