我有这个一个SQLselect a.b, '业务量', a.ALL_CITY, a.CITYA, a.CITYB, a.CITYC, '124'
from (select rownum w,
to_char(add_months(sysdate, -1), 'yyyyMM') b,
'业务量',
ALL_CITY - lag(ALL_CITY, 1, 0) over(order by acct_type) ALL_CITY,
CITYA - lag(CITYA, 1, 0) over(order by acct_type) CITYA,
CITYB - lag(CITYB, 1, 0) over(order by acct_type) CITYB
from fp_jq_db
where ZBDM = 'JF1400'
and acct_type in (to_char(add_months(sysdate, -1), 'yyyyMM'),
to_char(add_months(sysdate, -2), 'yyyyMM'))) a
where a.w = '2'其中 ACCT_TYPE 取的是 前两月 。按理 说 加了 order by acct_type 最后 正常的结果应该是 两条记录 第一条为 acct_type =to_char(add_months(sysdate, -1), 'yyyyMM') 的记录第二条为 相减的记录 相减的记录 ROWNUM为2,所以我加了条件只取相减记录的
可是 实际结果 却相反,rownum 为2的成了 acct_type =to_char(add_months(sysdate, -1), 'yyyyMM') 的 记录这个问题不知该如何解决,麻烦各位前辈指教下。谢谢
from (select rownum w,
to_char(add_months(sysdate, -1), 'yyyyMM') b,
'业务量',
ALL_CITY - lag(ALL_CITY, 1, 0) over(order by acct_type) ALL_CITY,
CITYA - lag(CITYA, 1, 0) over(order by acct_type) CITYA,
CITYB - lag(CITYB, 1, 0) over(order by acct_type) CITYB
from fp_jq_db
where ZBDM = 'JF1400'
and acct_type in (to_char(add_months(sysdate, -1), 'yyyyMM'),
to_char(add_months(sysdate, -2), 'yyyyMM'))) a
where a.w = '2'其中 ACCT_TYPE 取的是 前两月 。按理 说 加了 order by acct_type 最后 正常的结果应该是 两条记录 第一条为 acct_type =to_char(add_months(sysdate, -1), 'yyyyMM') 的记录第二条为 相减的记录 相减的记录 ROWNUM为2,所以我加了条件只取相减记录的
可是 实际结果 却相反,rownum 为2的成了 acct_type =to_char(add_months(sysdate, -1), 'yyyyMM') 的 记录这个问题不知该如何解决,麻烦各位前辈指教下。谢谢
解决方案 »
- 急:如何解决PL/SQL导出Oracle的数据为乱码的问题?
- 请教一个SQL语句的编写
- 为什么oracle 10G以后数据库文件不能够装在同一目录下?
- exp imp oracle导出/导入问题
- Oracle有没有提供对SQL语句预处理的接口?
- 以英文格式 返回中文日期格式中的月份
- 数据锁问题
- 客户端装了oracle9i的最小化安装,发现没有oracle provider for ole db,怎么样才能下载该驱动?在线等待100分
- 关于Oracle 8 中的BLOB字段的容量问题
- 请给一个按月份统计的oracle存储过程,马上结帖!
- 懂sql*loader的进
- 查询出一行若干列结果,遍历列数据添加到另外表中……求助~~~
--内部再嵌套一层排好序的试试:
select a.b, '业务量', a.ALL_CITY, a.CITYA, a.CITYB, a.CITYC, '124' from
(select rownum w,
to_char(add_months(sysdate, -1), 'yyyyMM') b,
'业务量',
ALL_CITY - lag(ALL_CITY, 1, 0) over(order by acct_type) ALL_CITY,
CITYA - lag(CITYA, 1, 0) over(order by acct_type) CITYA,
CITYB - lag(CITYB, 1, 0) over(order by acct_type) CITYB
from (
select * from fp_jq_db
where ZBDM = 'JF1400'
and acct_type in (to_char(add_months(sysdate, -1), 'yyyyMM'),
to_char(add_months(sysdate, -2), 'yyyyMM'))
order by acct_type
)
) a
where a.w = '2'