当前位置: 代码迷 >> Oracle开发 >> oracle的一个分组查询有关问题
  详细解决方案

oracle的一个分组查询有关问题

热度:8   发布时间:2016-04-24 07:26:07.0
oracle的一个分组查询问题
table:
单据号 姓名 金额
A name1 100
A name1 200
A name2 300
B name1 400
B name2 500
要求同一个单据号的按照姓名合起来


查询后结果:

单据号 姓名 金额
A name1 300(有100+200得到)
A name2 300
B name1 300
B name2 500

------解决方案--------------------
SQL code
select 单据号 ,姓名,sum(金额)from tablegroup by 单据号,姓名
------解决方案--------------------
with tab as (
select 'A' as djh,'name1' as name,100 as je from dual
union all
select 'A' as djh,'name1' as name,200 as je from dual
union all
select 'A' as djh,'name2' as name,300 as je from dual
union all
select 'B' as djh,'name1' as name,400 as je from dual
union all
select 'B' as djh,'name2' as name,500 as je from dual
)
select djh,name,sum(je) as je from tab group by djh,name
------解决方案--------------------
SQL code
--这个蛮基础的啊 楼主没认真去想吧select 单据号 ,       姓名,       sum(金额)  总金额from tbgroup by 单据号,姓名
------解决方案--------------------
探讨
SQL code

--这个蛮基础的啊 楼主没认真去想吧
select 单据号 ,
姓名,
sum(金额) 总金额
from tb
group by 单据号,姓名

------解决方案--------------------
SQL code
select 单据号 , 姓名, sum(金额)  总金额from tbgroup by 单据号,姓名
------解决方案--------------------
SQL code
SQL> with t as (  2       select 'A' 单据号,'name1' 姓名,100 金额 from dual union all  3       select 'A','name1',200 from dual union all  4       select 'A','name2',300 from dual union all  5       select 'B','name1',400 from dual union all  6       select 'B','name2',500 from dual)  7  select 单据号,姓名,sum(金额)  8  from t  9  group by 单据号,姓名;单据号 姓名   SUM(金额)------ ----- ----------A      name1        300A      name2        300B      name1        400B      name2        500
  相关解决方案