-
-
administrator 初学数据Lv2
发表于2019-11-4 19:39
悬赏50
已解决
BI4.7
需要对比当天与上周同一天的的数据,并且是当前小时与上周那天到同一个小时的数据对比,同时,还需要做日期筛选的查询。
举例说明:就是比如现在是晚上7点,当前数据只到7点钟,我需要对比上周同一天到7点钟的数据,但是当我筛选日期的时候,比如我查昨天的数据,因为昨天所有数据都有了,那么昨天对比的上周同一天就展示所有数据。
我是想通过取最大小时数来实现这个,但是在BI里,这个过滤条件该怎么写?日期,小时字段都有了
我试过就是先把当前时间参数下最大的小时值先取出来放到一个单元格里,然后想在过滤条件中把这个单元格的值获取到,再作为小时的条件过滤数据,但是总报错就是无法识别单元格A1这样子。
有没有更好的实现方法?或者说怎么才能正确获取到这个单元格的值。
发现很多回复都没注意到问题的重点,这里补充一下,一天完整数据目前是9-22点的,当天比对只是比对到当天的当前时间点,比如当天我得取到当前的小时数比如9,然后上周同一天数据同样要到9点
但是历史比对就要比对完整数据,我如果查昨天的,小时数就不是9了而是最后一条数据的时间,可能是晚上10点甚至更晚,因为数据全了。
当天和历史数据不同导致需要写判断条件,我是想通过每天的小时最大值来取到这个小时数,但BI好像没法这么写
但是BI目前直接取单元格写到条件里是会报错的,所以还有没有什么好办法能实现我想要的这种情况?



上周一到上周当天时间点的
V_SHOPAMOUNT.DATEPOINT=datetostr(offsetdate(@datepoint,0,0,-7),'yyyy-mm-dd') and asint(V_SHOPAMOUNT.timepoint)<=case when datetostr(@datepoint,'yyyy-mm-dd')=datetostr(today(),'yyyy-mm-dd') then asint(left(now(),2)) else 24 end
这个是取上周同一天的
13个回答
上周的这个时间点其实就是间隔7*24个小时 你可以利用这个时间间隔求出具体是那个时间点 知道哪一天了之后直接去那一天的这个时间段的值就可以了呀。
-
administrator 初学数据Lv2
yangm 发表于 2019-11-4 20:28
上周的这个时间点其实就是间隔7*24个小时 你可以利用这个时间间隔求出具体是那个时间点 知道哪一天了之后直 ...
时间很好求,问题是怎么放到过滤条件或数据期里去,这是根本问题
administrator 发表于 2019-11-4 20:52
时间很好求,问题是怎么放到过滤条件或数据期里去,这是根本问题
用od函数套seconds时间间隔的函数应该是能过滤到这个时间段的函数 您可以先尝试一下

-
administrator 初学数据Lv2
本帖最后由 administrator 于 2019-11-4 21:31 编辑
yangm 发表于 2019-11-4 21:00
用od函数套seconds时间间隔的函数应该是能过滤到这个时间段的函数 您可以先尝试一下hug.gif ...
你自己试试就知道了,单纯一个条件不好写的,必须要写判断
-
administrator 初学数据Lv2
administrator 发表于 2019-11-4 21:18
你自己试试就知道了,单纯一个条件不好写的,必须要写判断
如果日期参数是今天,我需要的是上周一也就是10月28日9点前的数据,但是当我查询日期是昨天的时候也就是11月3日,这个时候对比的就是一整天的数据,不写判断我想不到好方法
administrator 发表于 2019-11-4 21:40
如果日期参数是今天,我需要的是上周一也就是10月28日9点前的数据,但是当我查询日期是昨天的时候也就是1 ...
od函数是可以返回昨天的时间的 d-1就可以了,同样od函数也可以上周的时间,判断肯定是要写的 因为你要取值的是一个时间段 我现在手上没电脑 明天再试试吧
-
administrator 初学数据Lv2
yangm 发表于 2019-11-4 21:48
od函数是可以返回昨天的时间的 d-1就可以了,同样od函数也可以上周的时间,判断肯定是要写的 因为你要取 ...
我现在问题就是这个判断怎么都实现不了,日期时间我都取到,就是判断写不出
-
administrator 初学数据Lv2
1505121235 发表于 2019-11-5 10:42
您看一下这个符号您的场景吗?图中是月报,您这个粒度是小时,尝试一下
不符合,问题主要不是取到上期同期的时间,而是当天和历史的时间范围是不同的,这个条件对比适用的是每个时间段范围都一致,而我的问题在于当天和历史数据的时间段不一致并且一直在变化