工作上遇到問題,更正為以下內容
若有來源表如下
欄A | 欄B | 欄C | 欄D |
---|---|---|---|
100 | 條件W | 1Day | |
200 | 條件X | 1Day | |
300 | 條件X | 10Days | |
400 | 條件X | 20Days | |
500 | 條件Y | 20Days | |
600 | 條件Y | 30Days | |
700 | 條件Z | 30Days | |
800 | 條件Z | 40Days |
想產出如下結果
|欄位C|1Day|10Days|20Days|30Days|
|--|--|--|--|
|條件X|200|300|400|null|
|條件Y|null|null|500|600|
|條件Z|null|null|null|700|
註:沒有值的部分需填入null
目前想法是建立一表,條件及日期都符合所需
欄C | 1Day | 10Days | 20Days | 30Days |
---|---|---|---|---|
... | ... | ... | ... | ... |
因考慮效能,不使用子查詢,改用set將依序填入欄A或B的值,得目標結果 |
不知道除了這方法,有沒有其他建議方式呢
先謝謝願意給解答的各位
找尋 pivot 網路上有蠻多相關文章
我會使用case when
和 aggregate function
SELECT [在周末],
[交通工具],
[娛樂],
SUM(CASE WHEN 日期 = '一月' THEN [爸花費] + [媽花費] ELSE 0 END) '一月',
SUM(CASE WHEN 日期 = '二月' THEN [爸花費] + [媽花費] ELSE 0 END) '二月',
SUM(CASE WHEN 日期 = '三月' THEN [爸花費] + [媽花費] ELSE 0 END) '三月',
SUM(CASE WHEN 日期 = '四月' THEN [爸花費] + [媽花費] ELSE 0 END) '四月'
FROM dbo.T
--WHERE add your condition
GROUP BY
[在周末],
[交通工具],
[娛樂]
https://stackoverflow.com/questions/24470/sql-server-examples-of-pivoting-string-data
有限制只能在EXCEL或SQL上執行,不用或不想用C#或python嗎?
如果你可以搭上電腦語言,能做的事會更多哦
例...這是我幫老婆做她公司(房仲)的Google表單的所有成員成交記錄,這是原稿
我用C#做出以下的分析(輸出結果是Excel檔,加上自動圖表,簡單秀幾個)