转 :水晶报表中几种交叉表的实现方法

来源:互联网 发布:淘宝如何优化排名 编辑:程序博客网 时间:2024/04/30 09:41

转自:http://www.cnblogs.com/babyt/archive/2008/05/06/1184249.html

交叉表,顾名思义,就是行和列交叉,用于将行上的数据,作为列指标来呈现。

用一个图直观的说明一下,就是将图1中的数据样式


最终呈现为如图2的效果



实际在使用中,我们可以用两种方式来实现这个效果

一是在数据库端用SQL将数据组织成交叉表,然后对这个数据以普通的报表形式呈现。
在这里,我摘录了网上一篇写的比较直白的文章,请参考此链接。
http://server.chinabyte.com/474/2591974.shtml

根据数据的情况,交叉后的列可能是固定的,也可能是不固定的
要注意写法,还要注意不同的数据库的SQL也是不一样的。如SQL Server和Oracle就有不同。
这里主要是提供个思路。

二是依靠水晶报表来直接实现,我在文章的最后提供了一个操作视频,大家可以看实际的操作步骤。
在这里需要说明一下的是,不是所有的数据,都那么标准,所以需要做一些修正。
水晶报表不仅仅支持从表里取数据,还支持View和SQL命令,存储过程等
所以可以使用View或者SQL命令来实现,在视频的例子中,我就用了这个例子
原始数据是这样的(图3),


为了适用交叉表,将其修正为图1所示。
我做了View来简化后续的操作,对于后续操作来说,使用表和view的效果是一样的。
view脚本为:

select 年份,地区,指标,'最大值' as 数值类别,最大值 as 数值 from test_4
UNION 
select 年份,地区,指标,'最小值' as 数值类别,最小值 as 数值 from test_4;

 

 


在视频最后,我对交叉表上的一些设置进行了操作,大家可以参考。如:
如何去除行、列上的合计字段
如何去掉交叉表左上角的缺角等一些基本操作

特别说明一下,要从交叉表导出一张完美的Excel是比较困难的
如果有这种需要,建议使用使用SQL交叉的方式,用一般的报表方式来实现.

请在此处下载操作视频,解压缩密码为:babyt
/Files/babyt/CR20080505.rar
(本视频为http://topic.csdn.net/u/20080505/17/2ff3406c-9240-40ef-b361-1490aa802581.html而作,比一般性的交叉表稍嫌复杂)

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 卧室门锁舌断了怎么办 锁舌头坏了怎么办自救 门锁斜舌头断了怎么办 锁把手断了半截怎么办 门锁那一块掉了怎么办 qq动态密码忘了怎么办 小三怀孕了原配该怎么办 我当了小三怎么办 被降职后在单位怎么办 领导故意整我该怎么办 小孩怎么教育都不听怎么办 赵本山怎么办的刘涌 起诉离婚被告不出庭怎么办 安装u盘进入系统怎么办 思讯加密狗坏了怎么办 村主任选不出来怎么办 你的id已被停用怎么办 车牌摇号中签后怎么办 北京车卖了指标怎么办 车的电脑板坏了怎么办 饭卡消磁了怎么办妙招 有好项目没资金怎么办 买的股票涨停了怎么办 考研没过国家线怎么办 中石化的油卡怎么办 5173号被找回了怎么办 谭木匠梳子断了怎么办 198地块上的企业怎么办 天猫投诉不成立怎么办 顾客老嫌瓷砖贵怎么办 公司的公章丢了怎么办 物业不给充电费怎么办 怎么办社保卡去哪里办 单位没给社保卡怎么办 诈骗链接点开了怎么办 私人老板拖欠工资不给怎么办 辞职了工资不发怎么办 老板欠工资不给怎么办 投资平台跑路了怎么办 眼镜太松往下滑怎么办 塑胶水管管断了怎么办