1、ORACLE数据库是9i,测试的时候没有其他人使用
2、进入SQLPLUS后,第一次运行的值是19000多,第二次运行的值是8000多,第三次的值才正确,是1800多,接着再执行,结果就保持在1800多不变了,够奇怪的。基本上每次重新进入SQLPLUS执行都会遇到相同的情况。
3、SQL如下,用来获取某段时间内某人的加工总金额:
select nvl(sum(nvl(xfI.qty_finish,0)*nvl(xjs.job_pay,0)),0)
from XXWIPT_FLOWCARD_ITEM xfi,----工人加工信息
XXWIPT_PRODUCT_WORK xpw,----产品工序关系
XXPAYT_JOB_STANDARD xjs,----单件工价
HR_EMPLOYEE_BASE heb---人员信息
where xfi.working_id = xpw.working_id----工序ID
and xfi.item_id = xpw.item_id----产品ID
and xfi.employee_code = heb.employee_code----人员工号
and heb.employee_id = 259
and xpw.product_work_id = xjs.product_work_id---工价ID
and trunc(xfi.finish_date) >= to_date('041021','yymmdd')---完工开始日期
and trunc(xfi.finish_date) <= to_date('041120','yymmdd')---完工结束日期4、请高手不啬指教!
2、进入SQLPLUS后,第一次运行的值是19000多,第二次运行的值是8000多,第三次的值才正确,是1800多,接着再执行,结果就保持在1800多不变了,够奇怪的。基本上每次重新进入SQLPLUS执行都会遇到相同的情况。
3、SQL如下,用来获取某段时间内某人的加工总金额:
select nvl(sum(nvl(xfI.qty_finish,0)*nvl(xjs.job_pay,0)),0)
from XXWIPT_FLOWCARD_ITEM xfi,----工人加工信息
XXWIPT_PRODUCT_WORK xpw,----产品工序关系
XXPAYT_JOB_STANDARD xjs,----单件工价
HR_EMPLOYEE_BASE heb---人员信息
where xfi.working_id = xpw.working_id----工序ID
and xfi.item_id = xpw.item_id----产品ID
and xfi.employee_code = heb.employee_code----人员工号
and heb.employee_id = 259
and xpw.product_work_id = xjs.product_work_id---工价ID
and trunc(xfi.finish_date) >= to_date('041021','yymmdd')---完工开始日期
and trunc(xfi.finish_date) <= to_date('041120','yymmdd')---完工结束日期4、请高手不啬指教!
解决方案 »
- 包里定义一个静态游标,该游标能做过程的输出参数吗
- 用sqlplus可以連接 但是用plsql developer 或者企業管理器就不能連接
- ORA-01693: max # extents (4096) 已在 lob 段KM3KS.SYS_LOB0000024855C00003$$中达到
- 时间很多触发trigger
- 存在表T(a,b,c,d),要备份表中数据,写ORACLE,Sql。请教高手怎么写?在线等
- 紧急求助 关于oracle dataguard 日志传输
- oracle 冷备份 恢复时报错 大家帮忙!
- [请教]Oracle中写sql脚本利用spool功能导出数据的问题
- Oracle中的自动增量值如何恢复使之同步??急!在线等待!一定给分!
- jsp连接局网里其它ORACLE的问题
- 要当爸爸了,开心散分
- 如何将一个用户方案导出为SQL语句
----------------------
如果你的finish_date存在时:分:秒,那最好使用to_date(xfi.finish_date) >= to_date('041021','yymmdd');
trunc(finish_date),
to_date(finish_date),
finish_date
from XXWIPT_FLOWCARD_ITEM;
看看记录数变不变
逐渐将表加上.
看看为题出在那个环节.
刚才我又试了一下,每次重启动数据库后用那句SQL查询的记录数count(*)没有变化,但就是返回的值在第一次的时候不正确,而且不正确的值就那几个,也不是随机变化的。
select sum( f * p ), count(*)
from (
select nvl(xfI.qty_finish,0) as f, nvl(xjs.job_pay,0)) as p
from XXWIPT_FLOWCARD_ITEM xfi,----工人加工信息
XXWIPT_PRODUCT_WORK xpw,----产品工序关系
XXPAYT_JOB_STANDARD xjs,----单件工价
HR_EMPLOYEE_BASE heb---人员信息
where xfi.working_id = xpw.working_id----工序ID
and xfi.item_id = xpw.item_id----产品ID
and xfi.employee_code = heb.employee_code----人员工号
and heb.employee_id = 259
and xpw.product_work_id = xjs.product_work_id---工价ID
and trunc(xfi.finish_date) >= to_date('041021','yymmdd')---完工开始日期
and trunc(xfi.finish_date) <= to_date('041120','yymmdd')---完工结束日期
)