各位老大,无固定列名比较复杂的交出表查询,请帮忙看看。

最近碰到一个交出表问题,查了很多的资料也没有找到答案,请各位老大帮忙解决。数据库用的是SQL SERVER.问题是这样的:

我从公司的考勤卡钟读取的原始数据,数据格式及数据如下:

 

Sname

dt

Stime

张三

2005-03-11

07:36:00 

张三

2005-03-11

12:01:00 

张三

2005-03-11

12:39:00 

张三

2005-03-11

19:11:00 

李四

2005-03-11

07:30:00

李四

2005-03-11

12:06:00

李四

2005-03-11

12:36:00

李四

2005-03-11

17:36:00

李四

2005-03-11

19:36:00

王五

2005-03-11

07:55:00

王五

2005-03-11

12:01:00

王五

2005-03-11

12:44:00

王五

2005-03-11

17:04:00

王五

2005-03-11

17:55:00

王五

2005-03-11

23:03:00

现在想通过整理后得出这样的结果:

 

Sname

dt

T1

T2

T3

T4

T5

T6

Shour

张三

2005-03-11

07:36

12:01

12:39

19:11

 

 

10

李四

2005-03-11

07:30

12:06

12:36

17:36

19:36

 

8

王五

2005-03-11

07:55

12:01

12:44

17:04

17:55

24:03

14

此查询语句的难点主要在:1.员工打卡无固定次数,也就是说,一个员工在一天里有可能打上超过10次的记录数。像一般的交叉表都有一个固定的列名,我这个表没有。 2.      Shour字段为员工实际上班时间数,超过8小时将获得加班费。但是有部分的员工可能会超日期打卡。如王五的最后一次是24:03,实际上是第二天的2005-3-12号了。 

我们现在一个月大约有6万条数据,请各位老大指点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值