我需要为每一天找到年龄,但我在一个查询中的所有先前日期都需要它。
例如:
Date_in Age
24/JUN/15 20
23/JUN/15 19
22/JUN/15 18
是否有任何方法可以自动计算以前的日期并提供输出。
最终输出应显示如下:
request.get_data()
答案 0 :(得分:0)
基本上,我们的想法是使用内联视图列出items
表的所有日期。我假设每天都有一个creation_date。
然后使用笛卡尔积与项目表联接。
您可能需要过滤更多内容,而不确定您希望获得哪种结果。
在SQLFiddle上我使用了此架构
CREATE TABLE items
(
item_id number,
create_time date
);
insert into items values (1, sysdate-3);
insert into items values (2, sysdate-2);
insert into items values (3, sysdate-1);
insert into items values (4, sysdate);
测试此查询,这可能是您要求的
select
b.system_date as date_in, (b.system_date-a.create_time) as age, a.item_id, a.create_time
from
(select distinct create_time as system_date from items) b,
items a
order by date_in desc, age desc;
结果可在上面的链接中找到。
答案 1 :(得分:0)
Here is the Answer which worked for me:
select trunc(sysdate) - level + 1 dt
, trunc(sysdate) - level + 1 - created_date age from items
connect by trunc(sysdate) - level + 1 - created_date > 0;
or
SELECT (SYSDATE-rownum) AS DATE,
((SYSDATE - rownum)- create_time)Age
FROM items
connect by level <3