Re: [SQL ] 員工每月請假資料統計

作者: rockchangnew (rock)   2016-04-07 11:53:41
※ 引述《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
作者: rockchangnew (rock)   2016-04-07 11:55:00
一月週數有六周,我少寫一個 >_<
作者: neo5277 (I am an agent of chaos)   2016-04-07 15:38:00
推推
作者: oherman (qq)   2016-04-07 15:45:00
謝謝,學到很多新用法
作者: SeanBoog (施吉祥先生)   2016-04-07 19:16:00
作者: francis512 (夏)   2016-04-10 03:09:00
猛猛der

Links booklink

Contact Us: admin [ a t ] ucptt.com