日期:2014-05-19  浏览次数:20629 次

讨论一下如何补全空数据的问题
比如我现在要从数据库表中取近10天的数据,用于显示图表。但是表中近10天的数据不一定都有。比如只有近3天或者间隔着有几天的数据。那么请问我怎么把其他没数据的补0.数据库中有nvl函数用于补0,那是用left join做到的。但是我这个没有基础信息表用来做“left”,而且我想,表数据量大的话这样效率会如何?各位大侠有没有好方法,在程序里控制的话如何实现方便一些呢?

欢迎大家多谈想法,发表有意义内容,参与讨论都给分哈。

------解决方案--------------------
如果没有基础信息表来做left join的话,会比较麻烦,要么就是在程序中把数据按天再处理下。

数据量大或者不大,1、要看你索引做的怎么样;2、要看你所汇总的数据规模如何。
所以不能简单的说效率会怎么样。
------解决方案--------------------
nvl实质上跟left join没有关系,只是你的业务好像有点关系。。。

把最近10天的日期用dateadd查出来当临时表,left join数据库中的数据,nvl函数补0