2014-12-03 93 views
-1

HY填充查询结果,curently我对结果缺少日期

 
date   amount  amount2 
27.11.2014 100   100 
28.11.2014 100   100 
29.11.2014 100   200 
1.12.2014  100   700 
2.12.2014  100   100 

这样的事情我没有今天和二○一四年十一月三十日任何记录。

我需要找到一种方法来为那些日子里写太多,得到最终的结果就像

 
date   amount  amount2 
27.11.2014 100   100 
28.11.2014 100   100 
29.11.2014 100   200 
30.11.2014 0    0 
1.12.2014  100   700 
2.12.2014  100   100 
3.12.2014  0    0 

回答

1

刚出加入您的查询到包含所有必要的日期的虚拟表。 这样的表格可以很容易地获得:

with t as (
     select to_date('01.12.2014', 'dd.mm.yyyy') + level -1 date_ 
     from dual 
     connect by to_date('01.12.2014', 'dd.mm.yyyy') + level -1 <= to_date('05.12.2014', 'dd.mm.yyyy') 
    ) 
select t.date_, 
     nvl(<your_table>.amount1,0) amount1, 
     nvl(<your_table>.amount2,0) amount2 
from t left join <your table> yt on yt.date = t.date_ 

此查询为您带来所有12月1日和12月5日之间的日期,你可以都由你自己修改的范围。 希望这有助于,否则请让我知道。

+0

是的,但您可能想要展示一个将此虚拟表连接到他所拥有的示例。附注 - 包含所有日期的永久物理表格(以及提取到列和索引的各个部分)**非常有用,可能是您可以创建的最佳分析表格。例如,能够通过可索引范围查询累计几个月,而不是在列上调用一个函数。 – 2014-12-03 12:21:39

+0

@ Clockwork-Muse,谢谢,我做到了。是的,物理日历非常有用。 – 2014-12-03 12:45:57