2016-03-10 47 views
0

我有一張表,每個月都有客戶列出並使用active_indicator。對於每個客戶,我想拉動活動指標僅兩個月(2014年12月和2015年12月),但是當我編寫下面的代碼時,我會得到一個表格,其中每個客戶列出兩次。我知道我可以使用max做另一個步驟來將表格彙總到客戶級別,但無論如何要在一個簡單的SQL查詢中執行此操作?如何在不復制客戶的情況下編寫此SQL?

select distinct 
    customer 
    ,case when date='2015-12-01' then active_indicator else 0 end as Dec2015_active_ind 
    ,case when date='2014-12-01' then active_indicator else 0 end as Dec2014_active_ind 
from monthly_account_cust 
where date in ('2015-12-01', '2014-12-01') 
order by customer 
+0

使用標記dbms(MySQL或MS SQL Server?)。數據類型爲'date'列? – jarlh

+0

除非你聚合這個,否則假設有兩行符合日期標準,你將得到兩行。 –

回答

5

很確定您正在尋找類似的東西。

select 
    customer 
    , max(case when date = '2015-12-01' then active_indicator else 0 end) as Dec2015_active_ind 
    , max(case when date = '2014-12-01' then active_indicator else 0 end) as Dec2014_active_ind 
from monthly_account_cust 
where date in ('2015-12-01','2014-12-01') 
group by customer 
order by customer 
+0

我確定你是對的! – jarlh

+0

嗯,是的,我應該知道試試這個。謝謝! –

+1

如果這對你有用,那麼你應該考慮接受這個答案。 –

相關問題