三维数据在fustionchart上的统计分析

这几天做东西,总是遇到三维数据展示的问题,郁闷得我头都大,第一个是在做GIS的图表展示的时候,遇到的是在各个政区中,展示关于各统计指标项目的数量图.第二个是查询出其中的各政区上企业的业务审核通过,为不通过,以及审核中,暂存,重新采集五种状态,其中还遇到关联表,而且有些政区上面是没有其中的五种状态的数据,这样还是要以0来显示.刚开始的时候看到这个业务头都大了。后来分析了一下感觉不难,然后开始写sql,通过对状态的分组,政区的分组关联等等,才写完,写完的数据是以各种状态有一行记录的形式,而且有些状态没有企业就没有数据, 感觉写得很烂,但心想也不致于统计不出来, 画不出图吧。以是开始写java代码,后来才发现,不管是怎么写,并不是想像的那样,可以通过一些逻辑处理就得处理得过来的,发现走不下去了。以是没有办法,重写sql。终于,通过 sum + case的方法,把五种状态都显示在一条记录中,并且通过右外连接的形式把所有的政区显示出来了, 不管有没有企业的政区。这样就好办多了, 以后来做成fusionchart就好办多了。

select t2.*, t1.* from
(select t.street ,count(*) as sum
,sum(case t.state when 'y' then 1 else 0 end) as sumy
,sum(case t.state when 'n' then 1 else 0 end) as sumn
,sum(case t.state when '0' then 1 else 0 end) as sum0
,sum(case t.state when '1' then 1 else 0 end) as sum1
,sum(case t.state when '2' then 1 else 0 end) as sum2
from C_YGDW_CAIJI t group by t.street) t1 --, --t1里面查的是各状态的企业数量,以及街道id
RIGHT JOIN --右外连接
(select d.deptid as deptid,d.displayname as deptname
from buffalo_org_departments d
where d.deptid in (select t.memberid
from buffalo_org_groupmembers t
where t.groupid = '5')
--and d.deptid in (14,15,26) 这里是添加街道ID的地方
) t2 --这里查的是所有部门的id 和部门名称
ON t1.street = to_char(t2.deptid) --这里通过部门ID 和街道ID 来进行 做右外连接


java代码中处理如下:


FCTitle.append("<?xml version='1.0' encoding=\'UTF-8\'?><chart palette='0' baseFont='宋体' baseFontSize='12' caption='各街乡数据采集、审核情况统计' xaxisName='街乡名称' yAxisName='采集到的企业数量' useRoundEdges='1' shownames='1' showvalues='0' showSum='1' legendBorderAlpha='0' formatNumberScale='0'>");

StringBuffer categories= new StringBuffer().append("<categories>");
StringBuffer dataset_1= new StringBuffer().append("<dataset seriesname='未审核' color='8BBA00'>");
StringBuffer dataset_Y= new StringBuffer().append("<dataset seriesname='审核通过' color='A66EDD' >");
StringBuffer dataset_N= new StringBuffer().append("<dataset seriesname='审核不通过' color='F984A1'>");

String sum1="";
String sumY="";
String sumN="";
while(rs.next()){

sum1=rs.getString("sum1");
sumY=rs.getString("sumy");
sumN=rs.getString("sumn");
sum1=sum1==null?"0":sum1;
sumY=sumY==null?"0":sumY;
sumN=sumN==null?"0":sumN;
categories.append("<category label='"+rs.getString("deptname")+"' />");

dataset_1.append("<set value='"+sum1+"' link='javascript:entinfo(1,"+rs.getString("deptid")+")'/>");

dataset_Y.append("<set value='"+sumY+"' link='javascript:entinfo(2,"+rs.getString("deptid")+")'/>");

dataset_N.append("<set value='"+sumN+"' link='javascript:entinfo(3,"+rs.getString("deptid")+")'/>");

}
categories.append("</categories>");

dataset_1.append("</dataset>");

dataset_Y.append("</dataset>");

dataset_N.append("</dataset>");

FCTitle.append(categories).append(dataset_1).append(dataset_Y).append(dataset_N);
FCTitle.append("</chart>");



显示效果如下图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值