三次元のデ-タのfustionchartの上の統計は分析します.
ここ数日は何をしていますか?三次元のデータ展示の問題に遭遇して、気がふさいでいます.一番目はGISの図表の展示をしています.出会ったのは各政区の中で、各統計指標項目の数量図を展示しています.二つ目はその中の各政区の企業の業務審査通過を調べて、不合格と審査の中で、一時的に保存します.5つの状態を採集し直します.中には関連表もあります.また一部の政区の上にはその中の5つの状態のデータがないので、やはり0で表示します.最初に見た時はこの業務が大きくなりました.分析してみたら難しくないと思いました.その後sqlを書き始めました.状態のグループ、政区のグループ関連などを通じて書き終わりました.書き上げたデータは様々な状態で一行の記録形式があります.そして一部の状態では企業がないとデータがないので、書き方が悪いと思いますが、統計が取れないと絵が描けないと思います.だから、javaコードを書き始めました.いくら書いても、想像したようなものではなく、いくつかの論理処理によって処理できます.歩けないことが分かりました.だからしょうがないです.sqlを書き直します.ついにsum+caseの方法により、5つの状態を一つの記録に表示し、右外連結の形ですべての政区を表示しました.これでいいです.これからはフュージョンチャートを作ってもいいです.
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>");
表示効果は下図のようになります.