Chinaunix首页 | 论坛 | 博客
  • 博客访问: 200165
  • 博文数量: 97
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1024
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-03 09:03
文章分类
文章存档

2017年(17)

2016年(54)

2015年(25)

2014年(1)

我的朋友

分类: Html/Css

2015-07-24 11:27:06

先看看效果:



报表软件:FineReport


1.分析-与正常查询的对比

如果不做这种树状结构展开的报表的话,正常的SQL应该是这样写的,以单据表为例,假设单据的机构为分公司,经营部

select 分公司编码,分公司名称,经营部编码,经营部名称,sum(数量) 总数量,sum(金额) 总金额

from order_header,order_itemoi

whereoh.order_id=oi.order_id

andoh.party_id_from in ('$(分公司编码)')

andoh.confirm_date >to_date('${startDatre}','yyyy-mm-dd')

andoh.confirm_date<to_date('${endDatre}','yyyy-mm-dd')+1

group by 分公司编码,分公司名称,经营部编码,经营部名称

2.SQL-over partition的应用

如果要做成在经营部级别汇总金额和数量,同时在分公司级别也要汇总数量和金额的话,那么,需要在1中的基础上做增加,在每一行上增加一列,来表示当前行所在的分公司的汇总的金额和数量,SQL如下

select 分公司编码,分公司名称,经营部编码,经营部名称,

sum(数量) 经营部总数量,sum(sum(数量)) over (partition by 分公司编码)  分公司数量,

sum(金额) 经营部总金额,sum(sum(金额)) over (partition by 分公司编码)  分公司金额

fromorder_header,order_item oi

whereoh.order_id=oi.order_id

andoh.party_id_from in ('$(分公司编码)')

andoh.confirm_date >to_date('${startDatre}','yyyy-mm-dd')

andoh.confirm_date<to_date('${endDatre}','yyyy-mm-dd')+1

group by 分公司编码,分公司名称,经营部编码,经营部名称

3.展示界面的设置和访问注意事项

展示界面的设置,一点点写比较麻烦,我就不讲了。最后,访问的时候需要在url后面加上参数op=sheet


阅读(723) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~