sum(c) over(partition by  d)  如何使用

数据集: select   a.recordtime, a.name,a.denfiniton   ,sum(recordvalue)over (partition by  a.name)  from  dauldata            如下图设置了a.recordtime(时间参数)  但是帆软报表中的SUM值未按照时间的改变而改变。  但是在数据集中加入具体时间范围SUM值会变化。求解无标题.png

FineReport lm136998764 发布于 2018-12-19 15:48
1min目标场景问卷 立即参与
回答问题
悬赏:6 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
3
touyuan001Lv6中级互助
发布于2018-12-19 15:57

在over 里面 加一个 order by a.recordtime


select   a.recordtime, a.name,a.denfiniton   ,sum(recordvalue)over (partition by  a.name order by a.recordtime)  from  dauldata

最佳回答
1
axingLv6专家互助
发布于2018-12-19 16:57

这三者的执行顺序为 where条件-->sum(c) over(partition by d)-->报表过滤

所以在where条件过滤sum的值会变化,在报表过滤就不会

如果一定要使用过滤,就不要在sql里面sum,而是在单元格使用汇总求和

  • 3关注人数
  • 465浏览人数
  • 最后回答于:2018-12-19 16:57
    请选择关闭问题的原因
    确定 取消
    返回顶部