限制Spotfire的信息链接列表达式

时间:2018-09-02 16:08:31

标签: spotfire

我有一列数据[Sales ID],它输入重复数据进行分析。我的目标是尝试限制数据以仅在分析中(而不是每天)提取每月最大天数的唯一销售ID。我基本上是想让它只获取分析中每个月的最后一天的唯一销售ID值,如果当前日期是到目前为止的最后一天,则应将其提取。因此,应提取任何给定月份的最大日期。请问我该如何在[Sales ID]列和[Date]列中写一个表达式来表示这一点?

1 个答案:

答案 0 :(得分:0)

最简单的两个选择可能是

1)调整niko提到的SQL

2)使用“使用表达式限制数据”选项限制可视化,使用以下方法:

Rank(Day([DATE]), "desc", Month([DATE]), Year([DATE])) = 1

如果您必须在“按需数据”部分中执行此操作(也许IL本身是usp或您没有编辑权限),我的偏好是创建另一个仅具有最大日期的数据表每个月,然后以此过滤您的第一个数据表。

但是,如果您确实需要在“按需数据”部分中进行此操作,那么我想您没有能力创建自己的信息链接。这意味着您无法取消其他数据表,您可能将不得不发挥创造力。

创造力的限制包括需要了解数据的“规则”-您是否每天都在提取数据?每星期一次?您有今天的数据还是今天的2?您可以大概编写一个python脚本,以获取过去10年中每个月的最后一天,然后不管昨天的日期是什么,然后将所有这些值都放入document属性中。这将允许您执行“来自属性的值”。

(侧面说明:我想说的是,您也可以直接在表达式部分中执行此操作,例如使用超长的代码
Date(DateTimeNow()),DateAdd("dd",-1,Date(Year(DateTimeNow()), Month(DateTimeNow()), 1))

但是Spotfire拒绝接受多个值。有趣的是,当我提取StringList属性的逻辑时,它给出以下内容:$ map(“ $ {udDates}”,“,”),这表明逗号是一种准确的方法,但是读取“ Expected'End of表达式”,但找到了“,'”。不确定这是Spotfire问题还是与我的数据库连接有关

tl; dr -在“按需数据”部分中进行此操作可能会令人费解。如果可能,建议在SQL中进行调整,否则在可视化方面有所限制