2017-08-24 1 views
0

2014年から2017年までの毎月の購入数をユーザーごとに表示するためにユーザーごとの購入データを含む完全な予定表に参加したい2016年まで購入していますが、最初の購入日までの各月の0と、月間の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

私はSQLの新しいブランドで、自分自身を教えてくれたので、悪い習慣があると確信しています。 –

+0

@AlexPooleサブクエリを削除したが、私の問題を解決しなかった更新されたコードを見てください。何か案は? –

答えて

0

は、グループごとやオーダーによる最初のサブクエリ内の句を持っていないのはなぜ

SUM(NVL(t.trans_counter,0)) 
+0

残念ながら、それは動作しませんでした。 –

+0

あなたはどんな結果を得ていますか? –

+0

だから、私は各ユーザーIDを望んでいる、私は〜48行、2014-2017毎月1、そして0ヶ月を​​含む各月内の対応する購入数を持っています。私は購入数があった各ユーザーの行だけを取得しています。 –

関連する問題