欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

oracle查询出重复数据展示为空算出小计和总计的oracle语句

更新时间: 2014-01-05 02:12:50 责任编辑: Author_N1

 

oracle查询出重复数据显示为空算出小计和总计的oracle语句
求高人指点这种结果的语句代码,谢谢


这是我的数据结构
create table T_Goods
(
Id int primary key,
GId varchar2(10) not null,
GName varchar2(20) not null,
GColour varchar2(10),
GWithin int,
GSize varchar2(10),
GNumber int




CREATE SEQUENCE seq_goods  
     INCREMENT BY 1     
     START WITH 1     
     NOMAXVALUE       
     NOCYCLE          
     CACHE 10;  
     
insert into T_Goods values(seq_goods.nextval,'A01','上衣','红',0,'S',10);
insert into T_Goods values(seq_goods.nextval,'A01','上衣','白',0,'M',20);
insert into T_Goods values(seq_goods.nextval,'A01','上衣','黑',0,'L',30);
insert into T_Goods values(seq_goods.nextval,'A02','下衣','红',0,'S',5);
insert into T_Goods values(seq_goods.nextval,'A02','下衣','白',0,'M',15);
--参考方法--
http://bbs.csdn.net/topics/390614340也是你发的吗?


select * from T_Goods1;
with t as
 (select GId, gname, gcolour, gwithin, gsize, sum(gnumber) gnumber
    from T_Goods1
   group by GId, gname, gcolour, gwithin, gsize
  union all
  select gid, gname,gcolour, null, 'gcolour小计', sum(gnumber)
    from T_Goods1
   group by gid, gname,gcolour
  union all
  select gid, gname, null, null, 'gname小计', sum(gnumber)
    from T_Goods1
   group by gid, gname
  union all
  select null, null, null, null, '总计', sum(gnumber)
  from T_Goods1
 )
select rownum seq,
       decode(rn, 1, gid) gid,
       decode(rn2, 1, gname) gname,
       gcolour,
       gwithin,
       gsize,
       gnumber
  from (
  select t.*, row_number() over(partition by gid order by gid,gname,gnumber) rn,
         row_number() over(partition by gid,gname order by gid,gname,gnumber) rn2 from t);



--参考方法--
开新帖了 老贴可以结了 结贴给分 
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:12:50
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7043/
本文WWW.DOC100.NET DOC100.NET版权所有。