自己感觉写的一个比较经典的报表sql
SELECT nvl((SELECT TRIM(city_name)
FROM sys_city_info
WHERE to_char(area_code) = area),
area) 地市,
nvl((SELECT TRIM(param_remark)
FROM sys_param
WHERE param_type = 'card_type'
AND param_code = card),
card) 卡类型,
nvl((SELECT TRIM(product_name)
FROM bf_product
WHERE product_id = product
AND prov_code = '034'),
product) 卡产品名称,
quantity 销售数量,
org_amount 销售面值,
amount 实收金额
FROM (SELECT decode(row_number() over(PARTITION BY area ORDER BY area, card, product), 1, area, '') area,
decode(row_number() over(PARTITION BY area, card ORDER BY area, card, product),
1,
card,
'') card,
product,
quantity,
org_amount,
amount
FROM (SELECT decode(area_code_group, 1, '合计', area_code) area,
decode(area_code_group, 0, decode(card_type_group, 1, '大计', card_type), '') card,
decode(card_type_group, 0, decode(product_id_group, 1, '小计', product_id), '') product,
quantity,
org_amount,
amount
FROM (SELECT area_code,
GROUPING(area_code) area_code_group,
card_type,
GROUPING(card_type) card_type_group,
product_id,
GROUPING(product_id) product_id_group,
SUM(total_quantity) quantity,
SUM(total_org_amount) / 100 org_amount,
SUM(total_amount) / 100 amount
FROM st_trans_info
WHERE prov_code = '034'
AND substrb(stat_date, 1, 6) <= '200605' --可以指定任何形式的日期,如某一日(月)或多日(月)
AND busi_id IN (2,20) --2购卡 20批量购卡 1查询 3退卡 -1购卡冲正 10卡号查询
AND card_status = 0 --0有效 -1已退卡 -2已冲正
GROUP BY ROLLUP(area_code, card_type, product_id))))
出来的报表如下:
地市 | 卡类型 | 卡产品名称 | 销售数量 | 销售面值 | 实收金额 | |
---|---|---|---|---|---|---|
1 | 0 | 193长途卡 | 50元特惠长话卡 | 40 | 2000 | 800 |
2 | 100元特惠长话卡 | 2 | 200 | 80 | ||
3 | 小计 | 42 | 2200 | 880 | ||
4 | 本地全能通卡 | 9元澳洲畅游卡 | 26 | 234 | 234 | |
5 | 50元特惠长话卡 | 323 | 16150 | 6460 | ||
6 | 100元特惠长话卡 | 45 | 4500 | 1800 | ||
7 | 小计 | 394 | 20884 | 8494 | ||
8 | 大计 | 436 | 23084 | 9374 | ||
9 | 南京 | 本地全能通卡 | 50元特惠长话卡 | 26 | 1300 | 520 |
10 | 100元特惠长话卡 | 3 | 300 | 120 | ||
11 | 小计 | 29 | 1600 | 640 | ||
12 | 大计 | 29 | 1600 | 640 | ||
13 | 无锡 | 193长途卡 | 50元特惠长话卡 | 2 | 100 | 40 |
14 | 小计 | 2 | 100 | 40 | ||
15 | 游戏点卡 | 100元特惠长话卡 | 1 | 100 | 40 | |
16 | 小计 | 1 | 100 | 40 | ||
17 | 本地全能通卡 | 50元特惠长话卡 | 9 | 450 | 180 | |
18 | 100元特惠长话卡 | 1 | 100 | 40 | ||
19 | 小计 | 10 | 550 | 220 | ||
20 | 大计 | 13 | 750 | 300 | ||
21 | 镇江 | 本地全能通卡 | 50元特惠长话卡 | 2 | 100 | 40 |
22 | 小计 | 2 | 100 | 40 | ||
23 | 大计 | 2 | 100 | 40 | ||
24 | 常熟 | 本地全能通卡 | 50元特惠长话卡 | 17 | 850 | 340 |
25 | 100元特惠长话卡 | 1 | 100 | 40 | ||
26 | 小计 | 18 | 950 | 380 | ||
27 | 大计 | 18 | 950 | 380 | ||
28 | 南通 | 本地全能通卡 | 50元特惠长话卡 | 10 | 500 | 200 |
29 | 100元特惠长话卡 | 1 | 100 | 40 | ||
30 | 小计 | 11 | 600 | 240 | ||
31 | 大计 | 11 | 600 | 240 | ||
32 | 杨州 | 193长途卡 | 50元特惠长话卡 | 4 | 200 | 80 |
33 | 小计 | 4 | 200 | 80 | ||
34 | 本地全能通卡 | 50元特惠长话卡 | 6 | 300 | 120 | |
35 | 小计 | 6 | 300 | 120 | ||
36 | 大计 | 10 | 500 | 200 | ||
37 | 盐城 | 游戏点卡 | 50元特惠长话卡 | 1 | 50 | 20 |
38 | 小计 | 1 | 50 | 20 | ||
39 | 本地全能通卡 | 50元特惠长话卡 | 6 | 300 | 120 | |
40 | 100元特惠长话卡 | 2 | 200 | 80 | ||
41 | 小计 | 8 | 500 | 200 | ||
42 | 大计 | 9 | 550 | 220 | ||
43 | 徐州 | 193长途卡 | 100元特惠长话卡 | 1 | 100 | 40 |
44 | 小计 | 1 | 100 | 40 | ||
45 | 本地全能通卡 | 50元特惠长话卡 | 4 | 200 | 80 | |
46 | 100元特惠长话卡 | 1 | 100 | 40 | ||
47 | 小计 | 5 | 300 | 120 | ||
48 | 大计 | 6 | 400 | 160 | ||
49 | 淮阴 | 本地全能通卡 | 50元特惠长话卡 | 4 | 200 | 80 |
50 | 100元特惠长话卡 | 1 | 100 | 40 | ||
51 | 小计 | 5 | 300 | 120 | ||
52 | 大计 | 5 | 300 | 120 | ||
53 | 连云港 | 本地全能通卡 | 50元特惠长话卡 | 3 | 150 | 60 |
54 | 小计 | 3 | 150 | 60 | ||
55 | 大计 | 3 | 150 | 60 | ||
56 | 常州 | 游戏点卡 | 50元特惠长话卡 | 5 | 250 | 100 |
57 | 小计 | 5 | 250 | 100 | ||
58 | 本地全能通卡 | 50元特惠长话卡 | 7 | 350 | 140 | |
59 | 100元特惠长话卡 | 3 | 300 | 120 | ||
60 | 小计 | 10 | 650 | 260 | ||
61 | 大计 | 15 | 900 | 360 | ||
62 | 泰州 | 游戏点卡 | 50元特惠长话卡 | 1 | 50 | 20 |
63 | 小计 | 1 | 50 | 20 | ||
64 | 本地全能通卡 | 50元特惠长话卡 | 3 | 150 | 60 | |
65 | 100元特惠长话卡 | 2 | 200 | 80 | ||
66 | 小计 | 5 | 350 | 140 | ||
67 | 大计 | 6 | 400 | 160 | ||
68 | 宿迁 | 本地全能通卡 | 50元特惠长话卡 | 5 | 250 | 100 |
69 | 小计 | 5 | 250 | 100 | ||
70 | 大计 | 5 | 250 | 100 | ||
71 | 合计 | 568 | 30534 | 12354 |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10881/viewspace-178022/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10881/viewspace-178022/
自己感觉写的一个比较经典的报表sql相关推荐
- 自己写的一个执行带参数的sql,PreparedStatement
之前是做.net的.转到java以后,发现很多问题,还有一些不便之处.但是我们可以自己动手. public int exesql(String sql,Object[] param) throws S ...
- 随着上网次数越来越多,IE地址栏中留下大量的历史网址,感觉很不爽,于是决心写一个清除IE地址栏的应用程序,随说有“上网助手”,但它要在能上网时才起作用,我想在不能上网时来对系统进行清理,于是写了一个叫
随着上网次数越来越多,IE地址栏中留下大量的历史网址,感觉很不爽,于是决心写一个清除IE地址栏的应用程序,随说有"上网助手",但它要在能上网时才起作用,我想在不能上网时来对系统进行 ...
- 古堡算式_经典的全排列问题(福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!” 华生:“我猜也)
题目描述 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!" 华生:&quo ...
- 软件测试个人求职简历该怎么写?一个优质软件测试工程师简历
目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...
- python斗地主游戏源码_我用tkinter写的一个斗地主练习复盘python程序
python写的斗地主模拟器使用说明,以及python的标准控件库tkinter的使用示例. http://vdisk.weibo.com/s/C5R1f8s9EVq2y 我用python写的一个斗地 ...
- C语言时间管理小程序,写了一个时间管理的微信小程序
原标题:写了一个时间管理的微信小程序 前言 以前看过<把时间当作朋友>这本书,里面有个管理时间的观点个人觉得很有用,就是养成记录自己每天的时间消耗的一个习惯,这样有助于更有效地管理自己的时 ...
- 手写Spring-ioc 注入 jdk反射实现 绝对满足你的好奇心哦 解决怎么我写了一个注解就可以直接注入了?
Spring-Ioc原理 解析 我们学完Spring后,大都就直接接着学习之后的内容啦,但是我想偶尔回过头来看一看,才能走的更远啊. 温故而知新. 关于Spring是怎么实现的?怎么我写了一个注解就可 ...
- python写机器人程序_用Python写的一个多线程机器人聊天程序
本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...
- PIL+pyqt 写了一个图片批量无损压缩工具python
前言 学习了一段时间python了-但是一直没有好的系统性的练手项目- 刚好最近想整理电脑里老旧的照片, 图片太多 大概130G 文件- 本人也是比较怀旧的人.图片不想丢弃-磁盘用了有10年了,以防意 ...
最新文章
- Swift类与OC类方法相互调用的
- php 鸟哥写过的c扩展,Yaconf —— 高性能的 PHP 配置管理扩展,鸟哥出品哦~
- ODBC、OLEDB、ADO的区别和联系
- 狂砸250多亿!亚马逊花了7年时间,造了一个让你自愿加班到死的办公室!
- Python下opencv(图像的阈值处理)
- Bootstrap横屏后竖屏
- Java推箱子游戏,文档+源码
- 电子科大杨宁TCPIP协议原理(总结)
- 腹肌锻炼视频(02):八种基本动作
- 计算机上的no是代表什么意思啊,电脑出现nosignal是什么意思
- MarkDown 的常用高阶教程
- php 配置 error_reporting,关于php中的错误配置display_errors与error_reporting说明
- zcmu --1919(多重背包)
- 拆30多元买的筋膜枪
- js兼容安卓和IOS的复制文本到剪切板,已做浏览器兼容处理,勿需插件
- vero visi 2021中文版
- 巨星陨落!哈尔滨工业大学讣告
- 华为轮值董事长郭平:华为重申不造车
- linux shell alias,Linux shell脚本中使用alias定义的别名
- Android轮播图原理思路分析+实现方案
热门文章
- FPGA蜂鸣器实现歌曲《两只老虎》
- 深渊:伊甸的幽灵 for mac(冒险解谜游戏)
- SAP BASIS ADM100 中文版 Unit 6(1)
- React-Router V6 传参,类式组件用ref搭个桥接收。
- 【X11vnc】Ubuntu18.04 x11vnc启动失败,报错error opening logfile: /var/log/x11vnc.log
- 计算机毕业设计Javavue学习视频课程网站(源码+系统+mysql数据库+lw文档)
- 018 VGA、DVI、HDMI
- C++多线程,多线程通信,队列
- 假如让我回到高考结束的那个暑假,我会这么做...
- matlab广域保护分区算法,基于行波信息的广域后备保护关联域识别方法与流程