首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

,水晶报表之交叉表 急

2012-12-31 
求助,水晶报表之交叉表急~~~要求哥哥姐姐帮帮忙啊。上面是要实现的报表,难点:行列交叉要求显示平均数,而总

求助,水晶报表之交叉表 急~~~
要求
,水晶报表之交叉表  急
哥哥姐姐帮帮忙啊。
上面是要实现的报表,难点:行列交叉要求显示平均数,而总计要求显示平均数的和,
目前看到报表的功能是,显示平均数,总计也是显示的平均数。

结果:
,水晶报表之交叉表  急

这关系到我在公司的生存呀,请求各位帮助。,水晶报表之交叉表  急



[解决办法]
水晶报表没有用过
用SQL语句生成交叉表不行?
[解决办法]
你的数据是什么,贴表结构及记录出来看看
[解决办法]
参考
http://bbs.csdn.net/topics/310045927
中我的回答
[解决办法]
总计是怎样得出的142.2、5.33
后台数据库是什么,如果支持ROLLUP

将你上述SQL语句存为查询比如VIEW1

SELECT FRM_NAME,SUM(CASE WHEN SVC_NAME='COMMON' THEN IRDAY ELSE 0 END),
SUM(CASE WHEN SVC_NAME='TAM' THEN IRDAY ELSE 0 END),
SUM(CASE WHEN SVC_NAME='SOCI' THEN IRDAY ELSE 0 END),SUM(IRDAY) AS 总计
FROM VIEW1 GROUP BY FRM_NAME WITH ROLLUP
[解决办法]
SELECT FRM_NAME,SUM(CASE WHEN SVC_NAME='COMMON' THEN IRDAY ELSE 0 END),
 SUM(CASE WHEN SVC_NAME='TAM' THEN IRDAY ELSE 0 END),
 SUM(CASE WHEN SVC_NAME='SOCI' THEN IRDAY ELSE 0 END),SUM(IRDAY) AS 总计
 FROM 
( SELECT f.frm_name,c.svc_name,ir.rpt_rcv_datetime ,r.rqst_datetime,
 FLOOR(ir.rpt_rcv_datetime- r.rqst_datetime) AS irday 
 FROM IVG_RQST r INNER JOIN IVG_FRM f ON r.IVG_FRM_ID = f.IVG_FRM_ID
 INNER JOIN CIM_DATA.clc_encntr e ON r.clc_encntr_id = e.clc_encntr_id 
 INNER JOIN CIM_DATA.cod_svc c ON e.COD_SVC_ID = c.COD_SVC_ID INNER JOIN 
 IVG_RPT ir ON   r.IVG_RQST_ID = ir.IVG_RQST_ID  ) aa
 
  GROUP BY FRM_NAME
这样能否运行。最好到ORACLE运行,看看问题出在什么地方

SELECT FRM_NAME,SUM(CASE WHEN SVC_NAME='COMMON' THEN IRDAY ELSE 0 END),
 SUM(CASE WHEN SVC_NAME='TAM' THEN IRDAY ELSE 0 END),
 SUM(CASE WHEN SVC_NAME='SOCI' THEN IRDAY ELSE 0 END),SUM(IRDAY) AS 总计
 FROM 
( SELECT f.frm_name,c.svc_name,ir.rpt_rcv_datetime ,r.rqst_datetime,
 FLOOR(ir.rpt_rcv_datetime- r.rqst_datetime) AS irday 
 FROM IVG_RQST r INNER JOIN IVG_FRM f ON r.IVG_FRM_ID = f.IVG_FRM_ID
 INNER JOIN CIM_DATA.clc_encntr e ON r.clc_encntr_id = e.clc_encntr_id 
 INNER JOIN CIM_DATA.cod_svc c ON e.COD_SVC_ID = c.COD_SVC_ID INNER JOIN 
 IVG_RPT ir ON   r.IVG_RQST_ID = ir.IVG_RQST_ID  ) aa
 
  GROUP BY rollup(FRM_NAME); 
能否运行
[解决办法]
可以指定


SELECT FRM_NAME,SUM(CASE WHEN SVC_NAME='COMMON' THEN IRDAY ELSE 0 END) as 你的名称,
  SUM(CASE WHEN SVC_NAME='TAM' THEN IRDAY ELSE 0 END) 

as 你的名称,
  SUM(CASE WHEN SVC_NAME='SOCI' THEN IRDAY ELSE 0 END) as 你的名称,SUM(IRDAY) AS 总计
  FROM 
 ( SELECT f.frm_name,c.svc_name,ir.rpt_rcv_datetime ,r.rqst_datetime,
  FLOOR(ir.rpt_rcv_datetime- r.rqst_datetime) AS irday 
  FROM IVG_RQST r INNER JOIN IVG_FRM f ON r.IVG_FRM_ID = f.IVG_FRM_ID
  INNER JOIN CIM_DATA.clc_encntr e ON r.clc_encntr_id = e.clc_encntr_id 
  INNER JOIN CIM_DATA.cod_svc c ON e.COD_SVC_ID = c.COD_SVC_ID INNER JOIN 
  IVG_RPT ir ON   r.IVG_RQST_ID = ir.IVG_RQST_ID  ) aa
  
   GROUP BY rollup(FRM_NAME); 
[解决办法]
嗯 还有那个null 应该怎么改成total?

nvl(FRM_NAME,'total')


动态的要写代码,参考
http://bbs.csdn.net/topics/80169901

热点排行