这两天遇到这么一个问题
由于要跨系统提供数据做报表,所以想要尽可能的提供全面、准确、简单的数据,以便于对方直接取用
我做出这样的一个构想,
首先进行多表联合查询,将所有用到的点即SID按天数汇总出结果,然后再将结果进行按天数累计,
为了查询效率,做成视图,限制每次查询内容为当月1-n日。
很幸运效果很好。
那么其中在进行数据按天数累加时遇到了困难,累积出来的数据有两个限制条件一个SID一个gather (时间)
上网查了下 OVER函数能很好的满足需要。
select t.*,
round( sum(sumnum_day) over (partition by t.sid order by t.gather ) ,0) as sum_Mon
from table_name t;
round( sum(sumnum_day) over (partition by t.sid order by t.gather ) ,0) as sum_Mon
from table_name t;
完美解决。
祝你好运!