1
如何通過week1,week2,week3..etc來轉換下表。每個月?謝謝。tsql - 如何透視下表?
例如 db表:
這是我所需要的表:
這是我做的,但我需要更有效的方式來做到這一點。
SELECT 'Oct' AS [Month]
,[Ocd]
,(select Wk_Cmpl from tb1 where WkNum = '1' and RIGHT(wkdt,2) = '10' and Ocd = '167') as wk1
,(select WKLY_PCT from tb1 where WkNum = '1' and SUM_LVL_Sort=3.00 and RIGHT(wkdt,2) = '10' and Ocd = '167') as [wk1%]
,(select WE from tb1 where WKNum = '2' and SUM_LVL_Sort=3.00 and RIGHT(wkdt,2) = '10' and Ocd = '167') as wk2
,(select WKLY_PCT from tb1 where WkNum = '2' and SUM_LVL_Sort=3.00 and RIGHT(wkdt,2) = '10' and Ocd = '167') as [wk2%]
,(select WE from tb1 where WkNum = '3' and SUM_LVL_Sort=3.00 and RIGHT(wkdt,2) = '10' and Ocd = '167') as wk3
,(select WKLY_PCT from tb1 where WkNum = '3' and SUM_LVL_Sort=3.00 and RIGHT(wkdt,2) = '10' and Ocd = '167') as [wk3%]
,(select WE from tb1 where WkNum = '4' and SUM_LVL_Sort=3.00 and RIGHT(wkdt,2) = '10' and Ocd = '167') as wk4
,(select WKLY_PCT from tb1 where WkNum = '4' and SUM_LVL_Sort=3.00 and RIGHT(wkdt,2) = '10' and Ocd = '167') as [wk4%]
,(select WE from tb1 where WkNum = '5' and SUM_LVL_Sort=3.00 and RIGHT(wkdt,2) = '10' and Ocd = '167') as wk5
,(select WKLY_PCT from tb1 where WkNum = '5' and SUM_LVL_Sort=3.00 and RIGHT(wkdt,2) = '10' and Ocd = '167') as [wk5%]
,[WKLY_AVG] As [Wk Avg]
,[MTH] AS [Mo. Cmpl]
,[COMB_FYTD_COMPLT_ALL] As [M/YTD Total]
,[COMB_FYTD_COMPLT_TARGET_PCT] As [% Goal]
FROM tb1
看起來你已經在Excel中做到了。你問如何在SQL中完全做到這一點?你使用的是什麼RDBMS? –
是的,我試圖在SQL,SSMS 2008中做到這一點,謝謝。 – user1672932
你看過MS BOL中的PIVOT SQL命令嗎?你在SSMS/SQL中已經嘗試過了些什麼? –