Re: [SQL ] 員工每月請假資料統計
不好意思,再延深問一下,因為我在查詢的時候可能不知道是第幾週
比如說3月1日至3月31日,只知道查詢區間,查詢結果如下:
employe 第N週 第N+1週 第N+2週 第N+3週 第N+4週
==================================================================
,但是r大的查詢方式必需要先確定第週數,不知道有沒有更smooth的查詢方式?
※ 引述《rockchangnew (rock)》之銘言:
: ※ 引述《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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.216.67
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1460366120.A.DAB.html
推
04/11 22:48, , 1F
04/11 22:48, 1F
推
04/11 22:51, , 2F
04/11 22:51, 2F
→
04/11 22:51, , 3F
04/11 22:51, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章