看板 Database 關於我們 聯絡資訊
※ 引述《oherman (qq)》之銘言: : 資料庫名稱:SQL SERVER : 資料庫版本:: 2012 : 內容/問題描述: : 各位好 : 我有個員工每月請假資料裡面存放的資料如下: : employe date(varchar) off_hour(int) : ============================================= : 張三 2016/01/02 8 : 張三 2016/01/10 8 : 李四 2016/01/03 4 : 李四 2016/01/04 2 : 李四 2016/01/26 8 : 王五 2016/01/02 2 : 王五 2016/01/16 1 : 王五 2016/01/25 8 : 想要依週曆產生如下資料(查詢一月份2016/01/01~2016/01/30資料) : employe 第一週 第二週 第三週 第四週 : ================================================================== : 張三 8 8 0 0 : 李四 6 0 0 8 : 王五 2 0 1 8 : 我可以不用procedure及function統計出像如上的資料表嗎?謝謝! 我的請假日期是直接用日期型態,不是用varchar型態 因此如果您是用varchar則請記得轉型 select employee ,isnull([1],0) as '第一週' ,isnull([2],0) as '第二週' ,isnull([3],0) as '第三週' ,isnull([4],0) as '第四週' ,isnull([5],0) as '第五週' from (select employee ,DATEPART(ww,RestDate) as [Week] ,sum(off_hour) as [off_hours] from resttb group by employee,DATEPART(ww,RestDate) ) p PIVOT ( sum ([off_hours]) FOR [Week] IN ( [1], [2], [3], [4], [5] ) ) AS pvt order by employee desc; 執行結果 http://imgur.com/NYhhcGl -- Sent from my Windows -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.136.240.135 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1460001223.A.D1D.html
rockchangnew: 一月週數有六周,我少寫一個 >_< 04/07 11:55
neo5277: 推推 04/07 15:38
oherman: 謝謝,學到很多新用法 04/07 15:45
SeanBoog: 推 04/07 19:16
francis512: 猛猛der 04/10 03:09