2016-02-16 41 views
2

我試圖在失蹤月份顯示零,但沒有成功。填寫零月失蹤月份

表:

clicks | impressions | ctr | position | month | year 

    111  2709   4  20   3   2015 
    101  2695   3  20   6   2015 
    76  2714   2  21   7   2015 
    . 
    . 
    . 
    64  1212   4  25   11  2015 
    81  1905   4  24   12  2015 

需要的輸出:

clicks | impressions | ctr | position | month | year 

    0   0    0  0   1  2015 
    0   0    0  0   2  2015 
    111  2709   4  20   3  2015 
    0   0    0  0   4  2015 
    0   0    0  0   5  2015 
    101  2695   3  20   6  2015 
    . 
    . 
    . 
    64  1212   4  25   11  2015 
    81  1905   4  24   12  2015 
+5

你可以有一個幫助表,帶有所有可能的月份數,做LEFT JOIN。 – jarlh

回答

0

像@jarlh建議,你可以做這樣的:創建一個包含所有月份速效一個 '表'(你將不得不填入你的自己,添加你想要的月份和年份),然後左加入原始表格,當值不存在時,將其設爲0.

select coalese(s.clicks,0) as clicks, 
     coalese(s.impressions ,0) as impressions, 
     coalese(s.ctr ,0) as ctr , 
     coalese(s.position ,0) as position , 
     t.month, 
     t.year 
from(
    SELECT 1 as month_num,2015 as year_num 
    union SELECT 2,2015 
    union select 3,2015 
    union select 4,2015 ....) t 
LEFT OUTER JOIN YourTable s 
ON(t.month_num = s.month and t.year_num = s.year)