统计各个经营部,各种产品的销售量,used_info是销售表,包括 经营部、时间、项目、人员等字段,
use_dtl是明细表包括 产品、数量等字段 写了以下语句:
select a.bu as 经营部,a.pdate as 时间 ,
a.item as 项目, a.rec as 人员 ,
SUM(decode (b.product_name , '产品1' , b.num ,0)) "产品1",
SUM(decode(b.product_name , '产品2' , b.num ,0)) "产品2",
SUM(decode(b.product_name, '产品3' , b.num ,0)) "产品3",
from used_info a left join use_dtl b on a.used_id=b.used_id
group by a.bu ,a.pdate ,a.item ,a.rec有以下结果:
经营部 时间 项目 人员 产品1 产品2 产品3
1 A经营部 2006-07-12 项目A 001 1 2 3
2 A经营部 2006-07-12 项目B 001 3 4 5
3 A经营部 2006-07-12 项目B 002 6 0 0
4 B经营部 2006-07-13 项目A 001 2 3 4
5 B经营部 2006-07-19 项目A 003 10 34 3
6 C经营部 2006-07-29 项目C 003 4 3 6
现在想在以上结果最后加上一行
合计 26 46 18
这个合计用rollup语句要怎么写??
use_dtl是明细表包括 产品、数量等字段 写了以下语句:
select a.bu as 经营部,a.pdate as 时间 ,
a.item as 项目, a.rec as 人员 ,
SUM(decode (b.product_name , '产品1' , b.num ,0)) "产品1",
SUM(decode(b.product_name , '产品2' , b.num ,0)) "产品2",
SUM(decode(b.product_name, '产品3' , b.num ,0)) "产品3",
from used_info a left join use_dtl b on a.used_id=b.used_id
group by a.bu ,a.pdate ,a.item ,a.rec有以下结果:
经营部 时间 项目 人员 产品1 产品2 产品3
1 A经营部 2006-07-12 项目A 001 1 2 3
2 A经营部 2006-07-12 项目B 001 3 4 5
3 A经营部 2006-07-12 项目B 002 6 0 0
4 B经营部 2006-07-13 项目A 001 2 3 4
5 B经营部 2006-07-19 项目A 003 10 34 3
6 C经营部 2006-07-29 项目C 003 4 3 6
现在想在以上结果最后加上一行
合计 26 46 18
这个合计用rollup语句要怎么写??
解决方案 »
- orcale用存储过程导出.dmp格式数据,即存储过程实现数据备份怎么做(急!)
- 如何将查询到的时间 12-10-2004 22:10:38 转换为 2004-12-10 22:10:38 呢?
- 用户创建问题
- 怎样在Java中调用Oracle中的存储过程?
- 急!急!急!如何在hp unix中安装oracle8
- 求救,无法在分布式事务处理中ROLLBACK ORA-06512.
- PL/SQL存储过程中能否调用truncate table操作?
- 大家讨论一下Oracle中存储过程对ORACLE效率与性能的影响
- Form自訂MENU 出現FRM-10221
- 两个分离的数据库怎么实现数据同步?
- 如何查看oracle索引使用率,困惑很长时间
- 服务器字符集是WE8ISO8859P1,属于单字符集,一个汉字占两个字节。我的oracle版本是8.1.7或7.3.4。有没有一个能够完全转换WE8ISO8859P1的父
a.item as 项目, a.rec as 人员 ,
SUM(decode (b.product_name , '产品1' , b.num ,0)) "产品1",
SUM(decode(b.product_name , '产品2' , b.num ,0)) "产品2",
SUM(decode(b.product_name, '产品3' , b.num ,0)) "产品3",
from used_info a left join use_dtl b on a.used_id=b.used_id
group by rollup(a.bu ,a.pdate ,a.item ,a.rec)
having (grouping(a.pdate)=0 and grouping(a.item)=0 and grouping(a.rec)=0)
or (grouping(a.bu)=1 and grouping(a.pdate)=1 and grouping(a.item)=1)
a.item as 项目, a.rec as 人员 ,
SUM(decode (b.product_name , '产品1' , b.num ,0)) "产品1",
SUM(decode(b.product_name , '产品2' , b.num ,0)) "产品2",
SUM(decode(b.product_name, '产品3' , b.num ,0)) "产品3",
from used_info a left join use_dtl b on a.used_id=b.used_id
group by rollup(a.bu ,a.pdate ,a.item ,a.rec)
having grouping_id(a.bu ,a.pdate ,a.item ,a.rec) in (0,15)