统计各个经营部,各种产品的销售量,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语句要怎么写??
解决方案 »
- 急!!如何设置oracle,使用户登录的时候不需要输入用户名密码
- (200分)在jsp中,调用怎样的oracle的sql语句实现快速分页?是top还是rownum?最好给个例子????????????
- 求 sql语句
- 如何用命令删掉表里的某列表结构及其数据?
- ■LOGN类型的无法减1?■
- oracle 中 GROUP BY 必须跟select中用到的所有字段?那么。。。
- 在存儲過程中,執行update 語句死機問題
- 新手请教:为什么一个表删除不了
- 一个SQL语句如何实现这个效果。
- 一个sql语句的问题,简单有分
- 如何查看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)