首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

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

2012-08-09 
oracle的一个分组查询问题table:单据号姓名金额Aname1100Aname1200A name2300Bname1400Bname2500要求同一

oracle的一个分组查询问题
table:
单据号姓名金额
A name1 100
Aname1 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 

热点排行