2017-01-26 3 views
0

値が空でもゼロであっても、Q1、Q2、Q3、Q4を表示したいと思います。Q1、Q2、Q3、Q4に値ゼロを表示する方法

Select Coalesce(Quarter(day_date), 0), year(day_date) 
from daily 
group by year(day_date) 
order by year(day_date) 

が、Q1、Q2、Q3、Q4は値またはゼロ

+0

あなたの質問を編集し、サンプルデータと希望する結果を提供してください。 –

+0

アプリケーションレベルコード – Strawberry

答えて

0

あなたはデータで年と四半期のすべての組み合わせを生成するcross joinを使ってこれを行うことができていないとき、それはまだ値を除外:

Select y.yyyy, q.qq, count(d.day_date) 
from (select distinct year(day_date) as yyyy from daily) y cross join 
    (select 1 as qq union all select 2 union all select 3 union all select 4) q left join 
    daily d 
    on year(d.day_date) = y.yyyy and 
     quarter(d.day_date) = q.qq 
group by y.yyyy, q.qq 
order by y.yyyy, q.qq; 

実際にはleft joinは、実際にカウントなどのdailyテーブルから何かを計算したい場合にのみ必要です。

+0

で欠落しているデータのロジックを処理することを検討してください。正確には、私はおそらくday_dateデータが特定の期間に存在しないために必要なものではありません....例えば、4月1日〜 Q1には含まれていません –

関連する問題