以下是我的select 语句:
select count(*) from
(select a.dw as dw,a,gr as gr,b,zt as zt,nvl((sum(sr),0)-nvl((sum(zc),0 )) as amt from a,b where a.list=b.list)
where dw='1' and amt>0
上面的语句计算出的结果为10000
然后把select count(*) 改为select *其他条件都不变,结果出来的记录条数是8500。
经查当select count(*) 的时候,好像是amt>0这个条件没有起作用。
不知道什么原因,请高手指教!!
select count(*) from
(select a.dw as dw,a,gr as gr,b,zt as zt,nvl((sum(sr),0)-nvl((sum(zc),0 )) as amt from a,b where a.list=b.list)
where dw='1' and amt>0
上面的语句计算出的结果为10000
然后把select count(*) 改为select *其他条件都不变,结果出来的记录条数是8500。
经查当select count(*) 的时候,好像是amt>0这个条件没有起作用。
不知道什么原因,请高手指教!!
解决方案 »
- 疑难杂症: ORA-01438: value larger than specified precision allowed for this column
- 一个小疑惑
- 格式化输出 客户订单
- 一个简单的触发器。
- oracle 存储过程怎么样返回多个值,如一个boolean类型和一个数据集?
- ★★救命啊,我不小心删除了表中的数据,如何恢复★★
- instead of 触发器问题
- 我在自动进行插入时为什么Orcal会出现连不上的情况?
- 救命啊 为什么在oracle的表编辑器里能执行的update语句 在servlet里执行后老出现Exception:java.lang.NullPointerException
- ★☆★☆★ 400分求一段可执行的,使用blob或者clob的sql语句★☆★☆★
- Oracle DBA 群7656292
- 一个简单的存储过程的问题(急!急!急!)
改为:
( nvl(sum(sr),0 )-nvl( sum( zc ),0 ) ) as amt
(select a.dw as dw,a,gr as gr,b,zt as zt,nvl((sum(sr),0)-nvl((sum(zc),0 )) as amt from a,b where a.list=b.list)
where dw='1' and amt>0一般情况是先NVL 在SUM
你的括号多了,
SUM(NVL(SR,0))-SUM(NVL(ZC,0))
也许的答案侥幸正确,但是这不是个好习惯,知道不。
做程序可是要小心的
这个语句执行应该有问题吧,是否少group by 语句
的问题,缺少一个大括号