2016-03-15 123 views
0

我想創建一個SQL數據透視查詢,其中返回結果是產品的名稱而不是'0'或'1'值(我正在尋找不同的值)。SQL PIvot返回值而不是計數

這是我的現有的查詢:

SELECT * 
FROM 
(select 
EBA_PROJ_STATUS.PROJECT AS PROJECT, 
EBA_PROJ_STATUS.REGION AS REGION, 
EBA_PROJ_STATUS_AIS.ONE_DB_PRODUCT_TYPE AS ONE_DB_PRODUCT_TYPE 
from EBA_PROJ_STATUS EBA_PROJ_STATUS, 
EBA_PROJ_STATUS_AIS EBA_PROJ_STATUS_AIS 
where EBA_PROJ_STATUS_AIS.PROJECT_ID=EBA_PROJ_STATUS.ID 
) 
PIVOT (
COUNT (distinct ONE_DB_PRODUCT_TYPE) FOR (ONE_DB_PRODUCT_TYPE) 
IN ('PROD1' as PROD1, 'PROD2' as PROD2, 'PROD3' as PROD3, 'PROD4' as PROD4, 'PROD4' as PROD5) 
) 

這使每個產品作爲標題爲PROD1,Prod2的等的值和「0」或「1」返回。有沒有辦法取0和1,並將其輸出爲產品字符串?

預先感謝您!

+0

產品字符串,它將與列標題相同?什麼零 - 顯示那些爲空? –

+0

嗨@AlexPoole這是正確的,零應該回來爲空。產品字符串與列標題相同。 –

回答

1

你可以只用本身的價值的聚合函數:

... 
PIVOT (
MAX (ONE_DB_PRODUCT_TYPE) FOR (ONE_DB_PRODUCT_TYPE) 
IN ('PROD1' as PROD1, 'PROD2' as PROD2, 'PROD3' as PROD3, 'PROD4' as PROD4, 'PROD4' as PROD5) 
); 

但是,這將讓你像一個結果:

PROJECT REGI PROD1 PROD2 PROD3 PROD4 PROD5 
--------- ---- ----- ----- ----- ----- ----- 
Project 1 EMEA  PROD2 PROD3    
Project 2 NA PROD1  PROD3    

這似乎完全沒有任何幫助。如果您想顯示除空值之外的其他值,而不是現在的零值,則可以將NVL /合併外部值中的值。

+0

非常感謝,只需要MAX值!這正是我需要的數據格式。我有一個數據透視插件,可以爲我執行計數功能。 –

相關問題