我想加入一个完整的日历表,每个用户购买数据,以显示每个用户从2014年到2017年每个月的任何购买数量。有些用户可能在2016年之前没有购买,但我仍然想要让结果显示每个月的0到第一个购买日期,以及几个月之间的任何0。
我无法获得0个月的收入!我认为这是因为我在许多独特的用户中都这样做,但感觉下面的代码应该可行。
select
c.fscl_yr_num
,c.fscl_month_num
,t.user_id
,sum(nvl(t.trans_counter, 0))
from
appca.d_cal c
left join
transaction_data t
on c.cal_dt = t.trans_dt
and t.trans_type = 'Purchase'
and c.fscl_yr_num in (2014, 2015, 2016, 2017)
group by
c.fscl_yr_num
,c.fscl_month_num
,t.user_id
order by
t.user_id
,c.fscl_yr_num
,c.fscl_month_num
;
答案 0 :(得分:0)
尝试
SUM(NVL(t.trans_counter,0))