起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2967|回复: 5

[结贴] 报表制作

[复制链接]

72

主题

187

帖子

429

积分

中级会员

Rank: 3Rank: 3

积分
429
QQ
发表于 2013-11-1 09:34:44 | 显示全部楼层 |阅读模式
版本: X5.2.3 小版本号:
数据库: Oracle 服务器操作系统: 应用服务器:
客户端操作系统: Windows 7 浏览器:
我要把下面报表数据做成报表单的统计表怎么做?
每周统计一次
报表数据.png
报表单.png

2

主题

812

帖子

951

积分

高级会员

Rank: 4

积分
951
QQ
发表于 2013-11-1 10:43:35 | 显示全部楼层
首先通过ksql语句设计查询如下的数据格式,select 姓名,职称,工作时间1,加班时间1,工作时间2,加班时间2,工作时间3,加班时间3,工作时间4,加班时间4,工作时间5,加班时间5,工作时间6,加班时间6,工作时间7,加班时间7 from 表格 where 日期 between 周一的日期
and 下周一的日期 返回这样一个结构,剩下的就好做了。sql查询结果的横竖排转换会吧。
技术支持qq 1282807026。(远程支持专用)
回复 支持 反对

使用道具 举报

72

主题

187

帖子

429

积分

中级会员

Rank: 3Rank: 3

积分
429
QQ
 楼主| 发表于 2013-11-1 11:58:47 | 显示全部楼层
本帖最后由 hui.m 于 2013-11-1 12:01 编辑
fengwei 发表于 2013-11-1 10:43
首先通过ksql语句设计查询如下的数据格式,select 姓名,职称,工作时间1,加班时间1,工作时间2,加班时间 ...

不会,顺便教教吧


还有我那个数据每一条只有一个工作时间和加班时间,其他的工作时间和加班时间都是根据日期填写的
回复 支持 反对

使用道具 举报

2

主题

812

帖子

951

积分

高级会员

Rank: 4

积分
951
QQ
发表于 2013-11-1 13:22:17 | 显示全部楼层
本帖最后由 fengwei 于 2013-11-1 15:39 编辑

例如你的数据结构是这样的
+----+------+----------+------------+
| id | name | worktime | date       |
+----+------+----------+------------+
|  1 | 张三 |        8 | 2013-11-04 |
|  2 | 张三 |        8 | 2013-11-05 |
|  3 | 张三 |        8 | 2013-11-06 |
|  4 | 张三 |        8 | 2013-11-07 |
|  5 | 张三 |        8 | 2013-11-08 |
|  6 | 张三 |        8 | 2013-11-09 |
|  7 | 张三 |        8 | 2013-11-10 |
+----+------+----------+------------+
,那么这个语句 select name,sum(case dayofweek(date) when '1' then worktime end) as worktime1,sum(case dayofweek(date) when '2' then worktime end) as worktime2,sum(case dayofweek(date) when '3' then worktime end) as worktime3,sum(case dayofweek(date) when '4' then worktime end) as worktime4,sum(case dayofweek(date) when '5' then worktime end) as worktime5,sum(case dayofweek(date) when '6' then worktime end) as worktime6,sum(case dayofweek(date) when '7' then worktime end) as worktime7 from work where date between '2013-11-4' and '2013-11-11' group by name;就可以实现如下的查询返回结果
+------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+
| name | worktime1 | worktime2 | worktime3 | worktime4 | worktime5 | worktime6 | worktime7 |
+------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+
| 张三 | 8            | 8         | 8         | 8         | 8         | 8         | 8         |
+------+-----------+-----------+-----------+-----------+-----------+-----------+-----------+
主要是使用这个语句实现胖瘦转换sum(case dayofweek(date) when '1' then worktime end)
当日期为某一天时,返回该天工作时间。其中dayofweek()是mysql的函数 返回日期的在一星期中的索引,返回值是{1,2,3,4,5,6,7}中的一个。



技术支持qq 1282807026。(远程支持专用)
回复 支持 反对

使用道具 举报

72

主题

187

帖子

429

积分

中级会员

Rank: 3Rank: 3

积分
429
QQ
 楼主| 发表于 2013-11-5 08:36:14 | 显示全部楼层
非常感谢
回复 支持 反对

使用道具 举报

72

主题

187

帖子

429

积分

中级会员

Rank: 3Rank: 3

积分
429
QQ
 楼主| 发表于 2013-11-5 08:36:36 | 显示全部楼层
可以结贴了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-21 00:11 , Processed in 0.080528 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表