换一种思路解决问题
2008-10-10 15:25
337 查看
今天看到这样一个问题
我的数据表中有以下记录
id type time amount
1 1 080101 100
2 1 080102 20
3 2 080101 30
4 2 080103 50
5 1 080105 10
...
我想在水晶报表中,用 柱图 表示,用time和type做分组,目前显示效果是,横坐标是时间,080101上面有两个柱,type为1的值是100,type为2的值是30,080102上面,type为1的值是20。。。
我期望的效果是一种累加,即在080102上面,type为1的值不是20,而是加上之前所有天type为1的,即120。
以我的经验,单纯靠水晶报表图表似乎实现不出来这个效果。简单试验了下,确实不行,于是转而在数据上下功夫
经过多次试验,构造出如下SQL,
SELECT t1 AS type1, tt2 AS time1, Sum(a.aa1) AS amount
FROM
(SELECT sum(amount) as aa1, type1 as t1,time1 as t2 FROM test1 group by type1,time1) AS a,
(select type1 as tt1,time1 as tt2 from test1 group by type1,time1 ) AS b
WHERE a.t1=b.tt1 and a.t2<=b.tt2
GROUP BY a.t1, b.tt2
执行后构造出的数据为
查询1
拿起计算器,按了几下,应该就是要的效果了
然后用这个View或者command再连上水晶报表,这效果就出来了
我的数据表中有以下记录
id type time amount
1 1 080101 100
2 1 080102 20
3 2 080101 30
4 2 080103 50
5 1 080105 10
...
我想在水晶报表中,用 柱图 表示,用time和type做分组,目前显示效果是,横坐标是时间,080101上面有两个柱,type为1的值是100,type为2的值是30,080102上面,type为1的值是20。。。
我期望的效果是一种累加,即在080102上面,type为1的值不是20,而是加上之前所有天type为1的,即120。
以我的经验,单纯靠水晶报表图表似乎实现不出来这个效果。简单试验了下,确实不行,于是转而在数据上下功夫
经过多次试验,构造出如下SQL,
SELECT t1 AS type1, tt2 AS time1, Sum(a.aa1) AS amount
FROM
(SELECT sum(amount) as aa1, type1 as t1,time1 as t2 FROM test1 group by type1,time1) AS a,
(select type1 as tt1,time1 as tt2 from test1 group by type1,time1 ) AS b
WHERE a.t1=b.tt1 and a.t2<=b.tt2
GROUP BY a.t1, b.tt2
执行后构造出的数据为
type1 | time1 | amount |
---|---|---|
1 | 080101 | 100 |
1 | 080102 | 120 |
1 | 080105 | 130 |
2 | 080101 | 30 |
2 | 080103 | 80 |
然后用这个View或者command再连上水晶报表,这效果就出来了
相关文章推荐
- 解决ArcGIS中因SDE或数据库配置问题而导致服务宕掉的一种思路
- 换一种思路解决问题
- 换一种思路:解决Ajax程序与IE7不兼容的问题
- 百度echart图表宽度自适应问题的一种解决思路
- 换一种思路解决问题
- [导入]从求职网站求职说起。再谈换一种思路解决问题,先做人,后做程序(开放求职工具源码)。
- Windows Phone中解决多模块多程序集之间相互循环引用的问题一种思路
- 用Python递归解决阿拉伯数字转为中文财务数字格式的问题(2)--打开思路的一种方法
- 从求职网站求职说起。再谈换一种思路解决问题,先做人,后做程序(开放求职工具源码)。
- [日记]2013年11月13日 一种解决问题的思路
- 解决IE兼容问题的一种思路-HTML判断IE版本
- 换一种思路:解决Ajax程序与IE7不兼容的问题
- 换一种思路:解决Ajax程序与IE7不兼容的问题
- 关于如何解决特定场景下WPF4.0中“XamlWriter.Save序列化限制”问题的一种思路
- Android借鉴支付宝的思路解决 GridView网格线粗细的问题
- 一种解决一维数组旋转问题的方法
- 一种垮域通知的协议解决思路-Notification Interface Protocol
- javascript异步执行函数导致的变量变化问题解决思路
- 一种快速解决JAVA内存泄漏问题的方法
- 浅析javascript异步执行函数导致的变量变化问题解决思路