日期:2014-05-17  浏览次数:20757 次

求sql ......



现在求一条sql语句:
  表结构如下:
  id name status workday remark
 
1001 张三 上班 2011-11-10
1002 李四 上班 2011-11-10
1003 王五 上班 2011-11-10
1004 张三 上班 2011-11-11
1005 李四 请假 2011-11-11
1006 王五 上班 2011-11-11

现在这个表结构需要统计出来的报表样式如下(报表统计周期为上月的26号到本月的25号)

姓名 25号 26号 .....1号 2号.. 10号 11 号 ... 25号  
张三 .... 上班 上班 ...
李四 .... 上班 请假 ...
王五 .... 上班 上班 ...

也就是说需要把纵向的workday (从上一个月的26号到本月的25号所有天)横行过来 显示,循环取出某个月度的考勤详情报表
求转换语句......

------解决方案--------------------
行转列
select name 
,max(case when workday='2011-11-10' then status end) "10号"
,max(case when workday='2011-11-11' then status end) "11号"
,max(case when workday='2011-11-12' then status end) "12号"
from tb
group by name 
;
------解决方案--------------------
探讨
现在求一条sql语句:
表结构如下:
id name status workday remark

1001 张三 上班 2011-11-10
1002 李四 上班 2011-11-10
1003 王五 上班 2011-11-10
1004 张三 上班 2011-11-11
1005 李四 请假 2011-11-11
1006 王五 上班 2011-11-11

现……