Reputation: 11
I'm working on reporting, the problem is that I'm getting null values instead of 0. Since I managed to get this report month wise, I'm stuck proceeding further with this query. Help me if i can add any changes. Thanks in advance.
select sub.district_name,sub.service_name,service_code,
sum(Approved_count) filter (where Month_ = 1) AS "January approved" ,
sum(Rejected_count) filter (where Month_ = 1) AS "January Rejected",
sum(Approved_count) filter (where Month_ = 2) AS "February approved" ,
sum(Rejected_count) filter (where Month_ = 2) AS "February Rejected",
sum(Approved_count) filter (where Month_ = 3) AS "March approved" ,
sum(Rejected_count) filter (where Month_ = 3) AS "March Rejected",
sum(Approved_count) filter (where Month_ = 4) AS "April approved" ,
sum(Rejected_count) filter (where Month_ = 4) AS "April Rejected",
sum(Approved_count) filter (where Month_ = 5) AS "May approved" ,
sum(Rejected_count) filter (where Month_ = 5) AS "May Rejected",
sum(Approved_count) filter (where Month_ = 6) AS "June approved" ,
sum(Rejected_count) filter (where Month_ = 6) AS "June Rejected",
sum(Approved_count) filter (where Month_ = 7) AS "July approved" ,
sum(Rejected_count) filter (where Month_ = 7) AS "July Rejected",
sum(Approved_count) filter (where Month_ = 8) AS "Auguest approved" ,
sum(Rejected_count) filter (where Month_ = 8) AS "Auguest Rejected",
sum(Approved_count) filter (where Month_ = 9) AS "September approved" ,
sum(Rejected_count) filter (where Month_ = 9) AS "September Rejected",
sum(Approved_count) filter (where Month_ =10) AS "October approved" ,
sum(Rejected_count) filter (where Month_ =10) AS "October Rejected",
sum(Approved_count) filter (where Month_ = 11) AS "November approved" ,
sum(Rejected_count) filter (where Month_ = 11) AS "November Rejected",
sum(Approved_count) filter (where Month_ = 12) AS "December approved" ,
sum(Rejected_count) filter (where Month_ = 12) AS "December Rejected",
sum(Approved_count) "Total Approved Applications",
sum(Rejected_count) "Total Rejected Application"
from
(
select district_name,service_name,sum(approved) as Approved_count, sum(rejected) as Rejected_count,service_code,cast(EXTRACT(month FROM status_upd_dt) as Numeric) as Month_ from dashboard
where cast(status_upd_dt as date) between '2019-01-01' and '2019-12-31'
group by district_name,service_name ,service_code,status_upd_dt order by district_name,service_code,status_upd_dt asc
)sub
group by sub.district_name,sub.service_name,service_code order by sub.district_name,service_code
Upvotes: 1
Views: 135
Reputation: 311853
sum
returns null
if it sums nothing. You can explicitly handle this by using coalesce
. E.g.:
coalesce(sum(Approved_count) filter (where Month_ = 1), 0) AS "January approved" ,
Upvotes: 2