请教ORACLE数据库sql查询语句问题

来源:百度知道 编辑:UC知道 时间:2024/09/27 06:10:59
我是用ASP开发一个查询界面
有个表OWE是存放在ORACLE数据库上的。
表中有以下字段:xh(序号),fjname(分局),name(用户名),addr(地址),hm(好吗),zm(帐目),zq(帐期),charge (金额)其中charge是数字型的,其它是字符型的。
现在我要将charge按hm进行汇总,然后在显示查询结果的时候要把fjname,name,addr,hm三个字段也显示出来。如何才能用一条SELECT语句搞定。

我试了一下,ORACLE只支持显示GROUP BY 的字段。
就是说只能执行select hm,sum(charge) from owe group by hm
如果要执行select fjname,name,addr,hm,sum(charge) from owe group by hm 这样就不行。ACCESS是可以的。

我现在想到另一个解决的办法就是先将hm字段进行GROUP BY存放在临时表中,然后再根据临时表的内容与OWE表进行关联查询。

请教各位高手能不能一条SELECT语句就搞定。

select MAX(fjname),MAX(name),MAX(addr),hm,sum(charge) from owe group by hm

没在GROUP BY 中的都要加集计函数

用Oracle要遵循其语法规则
GROUP BY 后要包含SELECT 后面的所有查询字段,除聚积函数(如SUM,COUNT等)

SELECT fjname, NAME, addr, hm, SUM (charge)
FROM owe
GROUP BY hm,fjname, NAME, addr

顺便问下,按hm汇总,那么其对应的fjname, NAME, addr应该唯一,否则无法同时显示。如想同时显示,其实是按charge汇总

同意楼上的
select fjname,name,addr,hm,sum(charge) from owe group by hm,fjname,name,addr;

select fjname,name,addr,hm,sum(charge) from owe where hm in (select hm from owe group by hm)