我要做一个年度报表统计数据的报表。
年度:2013月份 总数量 已解决数量 已关闭数量 完成数量 解决时间 解决率
1月 3000 2000 800 2800 50000 17.85
2月 4500 1000 3000 4000 ... ...
..................
我需要做类似以上的一个表格。单独统计每个月的总数量,或者单独统计每个月的已解决数量,我都能求出来,现在要这几个放一起,不知道怎么做了。
主要是每个列的统计数据的查询条件都不同。不知道大家做这类统计是怎么做的?
单独一个个列做出来,然后拼起来吗?用什么关键字拼啊?select count(request_id) as '总数量'
from itsm_request_base
where substring(create_time,1,4)='2013'
GROUP BY substring(create_time,6,2)select count(request_id) as '已解决数量'
from itsm_request_base
where substring(create_time,1,4)='2013' and `STATUS`=4
GROUP BY substring(create_time,6,2)年度月度统计报表
年度:2013月份 总数量 已解决数量 已关闭数量 完成数量 解决时间 解决率
1月 3000 2000 800 2800 50000 17.85
2月 4500 1000 3000 4000 ... ...
..................
我需要做类似以上的一个表格。单独统计每个月的总数量,或者单独统计每个月的已解决数量,我都能求出来,现在要这几个放一起,不知道怎么做了。
主要是每个列的统计数据的查询条件都不同。不知道大家做这类统计是怎么做的?
单独一个个列做出来,然后拼起来吗?用什么关键字拼啊?select count(request_id) as '总数量'
from itsm_request_base
where substring(create_time,1,4)='2013'
GROUP BY substring(create_time,6,2)select count(request_id) as '已解决数量'
from itsm_request_base
where substring(create_time,1,4)='2013' and `STATUS`=4
GROUP BY substring(create_time,6,2)年度月度统计报表
from tb
group by 月份
select substring(create_time,6,2),
count(request_id) as 总数量,
sum(if(`STATUS`=4,1,0)) as 已解决数量,
sum(if(`STATUS`=5,1,0)) as 已关闭数量,
sum(if(`STATUS`=6,1,0)) as 完成数量,
sum(sec_to_time(time_to_sec(create_time)) as 解决时间
from itsm_request_base
where substring(create_time,1,4)='2013' and
GROUP BY substring(create_time,6,2)
select substring(create_time,6,2),
count(request_id) as 总数量,
sum(if(`STATUS`=4,1,0)) as 已解决数量,
sum(if(`STATUS`=5,1,0)) as 已关闭数量,
sum(if(`STATUS`=6,1,0)) as 完成数量,
sum(sec_to_time(time_to_sec(create_time)) as 解决时间
from itsm_request_base
where substring(create_time,1,4)='2013'
GROUP BY substring(create_time,6,2)
前四列出来了,第五、六、七列的条件和前面又不同了。
第五列是 状态=4已解决或者状态=5已关闭。
第六列是 状态=4已解决或者状态=5已关闭的情况下,统计一个字段的数值.
select sum(itsm_incident.resolution_duration) from itsm_incident left join itsm_request_base on itsm_incident.request_id=itsm_request_base.request_id
where substring(create_time,1,4)='2013' and (`STATUS`=4 or `STATUS`=5)
GROUP BY substring(create_time,6,2)
第七列是将第六列除以第五列得到的值。这个该怎么接着做啊?
....
sum(if(`STATUS`=4 or `STATUS`=5,1,0)),
sum(if(`STATUS`=4 or `STATUS`=5,字段的数值,0))
from itsm_request_base
where substring(create_time,1,4)='2013'
GROUP BY substring(create_time,6,2)
我写晕了。我刚才试过用 if(`status`=4 || `status`=5)这个是错误的。
我把SQL语句和代码的或弄混了。哎。
select substring(create_time,6,2) as '月份',
count(itsm_request_base.request_id) as '工单数量',
sum(if(`status`=4,1,0)) as '已解决数量',
sum(if(`status`=5,1,0)) as '已关闭数量',
sum(if((`status`=4 or `status`=5),1,0)) as '已完成数量',
sum(if((`status`=4 or `status`=5),itsm_incident.resolution_duration,0)) as `解决时间`,
sum(if((`status`=4 or `status`=5),itsm_incident.resolution_duration,0))/sum(if((`status`=4 or `status`=5),1,0)) as `平均解决时间`
from itsm_request_base
left join itsm_incident on itsm_incident.request_id=itsm_request_base.request_id
where substring(create_time,1,4)='2013'
GROUP BY substring(create_time,6,2)