select usrid,usrnam,sfzh,crtdat,cwname,homeadd,usrtyp,grade,
ppay,zfdj,czbz,cgbt,jsbt,ppay+zfdj+czbz+cgbt+jsbt total,
allppay,allzfdj,allczbz,allcgbt,alljsbt,allint,allppay+allzfdj+allczbz+allcgbt+alljsbt+allint alltotal
from (select a.usrid,a.usrnam,a.sfzh,a.crtdat,b.name cwname,a.HOMEADD,a.USRTYP,a.GRADE,
(select nvl(sum(paymny+bpaymny),'0')
from NB_BASEPAY
where usrid=a.usrid
and YEAR='2011') ppay,
(select nvl(sum(czdj),'0') from NB_PI
where USRID =a.usrid
and yydat='2011') zfdj,
(select nvl(sum(CZBZ),'0') from NB_PI
where USRID =a.usrid
and yydat='2011') czbz,
(select nvl(sum(PAYMNY),'0') from NB_CWPAYDTL
where sfzh=a.sfzh
and year='2011') cgbt,
'0' jsbt,nvl(a.SUMMNY2,'0') allppay,
(select nvl(sum(czdj),'0') from NB_PI
where USRID =a.usrid ) allzfdj
,nvl(a.SUMMNY3,'0') allczbz,
(select nvl(sum(PAYMNY),'0') from NB_CWPAYDTL
where sfzh=a.sfzh) allcgbt,
'0' alljsbt,'0' allint
from NB_OPERROSTER a,NB_BP b
where a.orga=b.id
)
这个执行查出30000条记录 20毫秒
在后面加上条件where ppay!=0 查出9条 5000豪秒多请问是为什么?
解决方案 »
- 多个用户同时对同一张表进行查询、更新
- JDeveloper11g怎么和MS Access的应用相连接
- oracle case when 查询
- 高手帮忙
- OracleCallableStatement执行问题
- 在oracle中如何查看记录(除了用SQL语句,有没有像SQL server一样的企业管理器可以查看的)
- “ORA-01741:非法的零长度标识”请各位大虾光顾一下
- oracle新手提问之……
- 我的存储过程为什么运行有时出错误
- 请问oracle中的帮助导航器、帮助主题窗口是在哪里啊
- 各位大大,想做开发,求教需要哪些知识
- 想实现从3张表中取出数据形成一张表,但里面涉及了很多时间条件,请教一下如何取出一段时间的数据。
select ta.col_name,tb.col_name
from ta,tb
where about_ta_tb_condition
这个语句一般的都是先将ta,tb表进行笛卡尔积,然后再在此笛卡尔集里面找出满足where条件的数据,
即一条一条的筛选,满足条件的就出现在结果中,如果不满足,那么继续寻找,知道堆表中最后一条数据
或用<>试试
!=不走索引