1、建表 造数据:
create table t(
order_date date,
order_no number,
order_book varchar2(10),
order_fee number,
order_num number
);
insert into t select date '2010-5-1'+level,trunc(dbms_random.value*1000),
'book1',100*level,level from dual connect by level<5;
insert into t select date '2010-6-1'+level,
'book2',200*level,level from dual connect by level<5;
commit;
2、查询
select decode(grouping_id(order_date,order_no,order_book),6,order_book||'小计',7,'合计',to_char(order_date,'yyy-mm-dd')) order_date1,decode(grouping_id(order_date,null,order_book) order_book1,sum(order_fee) order_free,sum(order_num) order_num from t group by rollup(order_book,(order_date,order_no)) order by order_book,order_date;