某表中有int字段money,求在一条sql中可以查询出所有money和sum(money) id money
1 10.00
2 15.00
3 15.00 希望查询出来的结果是
id money sum
1 10.00 40.00
2 15.00 40.00
3 15.00 40.00我使用
select id,money,sum(money) over()
from table
语句可以查询出想得到的结果,可将语句加到创建的视图内后,sum得到的结果是全表的money和,并没有收到where id = ?的限制,请问该如何解决?
1 10.00
2 15.00
3 15.00 希望查询出来的结果是
id money sum
1 10.00 40.00
2 15.00 40.00
3 15.00 40.00我使用
select id,money,sum(money) over()
from table
语句可以查询出想得到的结果,可将语句加到创建的视图内后,sum得到的结果是全表的money和,并没有收到where id = ?的限制,请问该如何解决?
解决方案 »
- 请教个oracle数据库设计的问题 给个思路就好
- oracle导出数据报错问题
- 一条记录都没有,insert时咋还能违反唯一性约束??
- SQL!!!!!!!!大家帮帮忙啊!!!!!
- [oracle高手救命]关于一个oracle客户端10g,访问2个异地oracle服务器,字符集不同的问题。
- 请介绍下好的ORACLE的学习资料和网站 高分相送,谢谢
- unicode在表中的存储问题,请高手指点
- 如何卸掉win2000控制面板-管理工具-服务列表中oracle各种服务
- oracle8.1.6的最大会话数在哪里定义?线程还是进程怎么定义?
- 再100分求救,2000server+oracle9重其后oracleservice无法正常启动
- 表连接的问题
- 错误01017 invalid username/password
as
select id,money,(select sum(money) from table) sum
from table
create or replace view vie_name
as
select id,money,sum(money) from table
from (select id,money from table where id=?)
SELECT ID,MONEY,(SELECT SUM(MONEY) FROM T) SUM1
FROM T
create or replace view vie_name
as
select id,money,sum(money) over() from table
这个直观。不过既然啊是比较明确的sum,没有必要用over,除非是每个都不通,
否则直接
create or replace view vie_name
as
select a.id,a.money,b.ttl_money from table a ,
(select nvl(sum(money),0) ttl_money from table ) b ;
我想会更快一些。
as
select id,money,sum(money) from table group by id,money
as
select id,money,(select sum(money) from table where id=?) sum
from table 经过测试是通过的。