2014-02-28 17 views
1

我有以下查詢:SQL數據透視表語法

SELECT 
    INT_AUX_CONTACT.CONTACT_VISIBILITY_IND, 
    INT_USER.ACCOUNT_NM 

FROM (INT_USER 
INNER JOIN INT_AUX_CONTACT_COLLECTION  ON "INT_USER"."USER_ID"="INT_AUX_CONTACT_COLLECTION".IA_USER_ID) 
INNER JOIN INT_AUX_CONTACT ON INT_AUX_CONTACT_COLLECTION.COLLECTION_ID=INT_AUX_CONTACT.COLLECTION_ID 
WHERE INT_AUX_CONTACT_COLLECTION.COLLECTION_TYP_ID=1 AND INT_AUX_CONTACT.DELETED_IND=0 
and ACTIVE_IND=1 

它返回以下結果示例:

contact_visibility_ind|account_nm 
1      HR05 
2      HR05 
3      HR05 
3      HR05 
2      HR05 
1      CH10 
2      CH10 
3      CH10 
4      CH10 
0      CH10 
2      CH10 

我想產生樞軸表的結果表看起來像:

  0 1 2 3 4 
CH10 0 1 2 2 0 
HR05 1 1 2 1 1 

但是,每次我嘗試樞軸功能,我想出了語法錯誤。

有沒有人有任何建議? (對不起,我的表格中沒有網格線!)

+0

你的別名似乎對我來說是多餘的。我錯過了什麼嗎? – Alexander

+0

別名是完全多餘的,我繼承了查詢。我會修改並重新發布問題。 – BenjKenj

回答

0

我不是100%確定你是如何進入最終派生的數據透視表的。我認爲你要計算每一次出現的次數(可能CH10HR05應在表換?)

SELECT account_nm, [0], [1], [2], [3], [4] 
FROM 
(SELECT * 
FROM 
ResultOfQuery 
) x 
PIVOT 
(
    COUNT(contact_visibility_ind) 
    FOR contact_visibility_ind IN ([0], [1], [2], [3], [4]) 
) y; 

Fiddle here

查詢只需粘貼到SELECT * FROM ResultOfQuery佔位符。

+0

完美。你對PT推導的假設是正確的。謝謝你,先生。 – BenjKenj