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