我做过类似的。这样吧!
select z.name name, x."n月数量", x."n月金额", y."n + 1月数量", y."n + 1月金额", z."n + 2月数量", z."n + 1月金额"
from (
(select name, round(sum(qty)) "n月数量", round(sum(qty * price)) "n月金额"
from table
where table.YMD > ADD_MONTHS (TRUNC (SYSDATE), -n)) x,
(select name, round(sum(qty)) "n + 1月数量", round(sum(qty * price)) "n + 1月金额"
from table
where table.YMD > ADD_MONTHS (TRUNC (SYSDATE), -(n + 1))) y
(select name, round(sum(qty)) "n + 2月数量", round(sum(qty * price)) "n + 2月金额"
from table
where table.YMD > ADD_MONTHS (TRUNC (SYSDATE), -(n + 2))) z
)
where x.name(+) = y.name and x.name(+) = z.name and y.name(+) = z.name
select z.name name, x."n月数量", x."n月金额", y."n + 1月数量", y."n + 1月金额", z."n + 2月数量", z."n + 1月金额"
from (
(select name, round(sum(qty)) "n月数量", round(sum(qty * price)) "n月金额"
from table
where table.YMD > ADD_MONTHS (TRUNC (SYSDATE), -n)) x,
(select name, round(sum(qty)) "n + 1月数量", round(sum(qty * price)) "n + 1月金额"
from table
where table.YMD > ADD_MONTHS (TRUNC (SYSDATE), -(n + 1))) y
(select name, round(sum(qty)) "n + 2月数量", round(sum(qty * price)) "n + 2月金额"
from table
where table.YMD > ADD_MONTHS (TRUNC (SYSDATE), -(n + 2))) z
)
where x.name(+) = y.name and x.name(+) = z.name and y.name(+) = z.name
解决方案 »
- 函数中无法取得结果
- 程序执行到ExecuteNonQuery没反应了
- 请教top n 问题
- 如何在oracle report中调用外部的java及c++程序呢
- 怎样实现通过Delphi程序在Oracle数据库中创建表空间和用户啊?
- 怎样在oracle中取得区间在一个区间中的数据?
- oracle 的安全性问题
- 请教一个select问题,欢迎大家帮助我
- 请问如何组织关系型数据库中各表的关系?
- varchar2和nvarchar2有什么不同吗???
- 看看我这个测试数据库备份和恢复的计划是否可行
- 大量数据操作时INSERT INTO TABLE2 SELECT * from TABLE1 ……是否适用?
from (
(select name, round(sum(qty)) "n月数量", round(sum(qty * price)) "n月金额"
from table
where table.YMD > ADD_MONTHS (TRUNC (SYSDATE), -n)) x,
(select name, round(sum(qty)) "n + 1月数量", round(sum(qty * price)) "n + 1月金额"
from table
where table.YMD > ADD_MONTHS (TRUNC (SYSDATE), -(n + 1))) y
(select name, round(sum(qty)) "n + 2月数量", round(sum(qty * price)) "n + 2月金额"
from table
where table.YMD > ADD_MONTHS (TRUNC (SYSDATE), -(n + 2))) z
)
where x.name(+) = y.name and x.name(+) = z.name and y.name(+) = z.name
试试看啊