iT邦幫忙

0

#問 表格彙整

  • 分享至 

  • xImage

工作上遇到問題,更正為以下內容

若有來源表如下

欄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
  1. 若欄A有值則取欄A的值;若欄A無值則取欄B的值
  2. 欄C:取X,Y,Z
  3. 欄D:取1Day,10Days,20Days,30Days

想產出如下結果
|欄位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的值,得目標結果

不知道除了這方法,有沒有其他建議方式呢
先謝謝願意給解答的各位

石頭 iT邦高手 1 級 ‧ 2021-02-08 16:40:54 檢舉
我建議你提供文字版的sample data 和 expect result
石頭 iT邦高手 1 級 ‧ 2021-02-08 16:42:11 檢舉
另外你在找尋 pivot 網路上有蠻多相關文章
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
石頭
iT邦高手 1 級 ‧ 2021-02-08 16:48:22

找尋 pivot 網路上有蠻多相關文章

我會使用case whenaggregate 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

reliy1012 iT邦新手 5 級 ‧ 2021-02-08 22:03:29 檢舉

感謝回答!發問內容稍作調整,pivot我會再研究一下!

0
japhenchen
iT邦超人 1 級 ‧ 2021-02-08 16:56:43

有限制只能在EXCEL或SQL上執行,不用或不想用C#或python嗎?
如果你可以搭上電腦語言,能做的事會更多哦

例...這是我幫老婆做她公司(房仲)的Google表單的所有成員成交記錄,這是原稿
https://ithelp.ithome.com.tw/upload/images/20210208/20117954tCCGMSKthF.jpg

我用C#做出以下的分析(輸出結果是Excel檔,加上自動圖表,簡單秀幾個)
https://ithelp.ithome.com.tw/upload/images/20210208/20117954CRyhIRuQMv.jpg
https://ithelp.ithome.com.tw/upload/images/20210208/20117954nv5EJdDU47.jpg

reliy1012 iT邦新手 5 級 ‧ 2021-02-08 22:05:54 檢舉

謝謝!但因被指示須使用SQL,還是謝謝回覆!

我要發表回答

立即登入回答