我在 Qlikview 工作了几个星期,并加载了 SQL 服务器数据,包括 Reportdate(尝试了日期和日期时间类型),这总是最后一个月的日期。
现在我创建了一个变量如下:
vPreviousMonth = MonthEnd(AddMonths(GetFieldSelections(Reportdate),-1))
我已经通过选择所有不同的日期来检查结果。结论总是正确的结果。选择
2014-01-31
给出2013-12-31
,2014-03-31
给出2014-02-28
等
现在我想在集合分析选项中使用这个变量来汇总上个月的所有金额。我使用了以下表达式:
sum( { $< Reportdate = {$(vPreviousMonth)} > } Amount )
没有成功。我也尝试过使用数字日期,但也没有成功。 有没有人可以帮助我提供可行的解决方案?
谢谢!
尝试使用
Date()
将变量转换为日期,因为 MonthEnd()
返回时间戳。
vPreviousMonth = Date(MonthEnd(AddMonths(GetFieldSelections(Reportdate),-1)))
我假设 Reportdate 是一个日期类型
您选择了一个月,因此 Qlikview 在整个数据集中选择了这个月。这意味着所有带
Reportdate = {$(vPreviousMonth)}
的数据不再是数据集的一部分,不能被选中。如果您尝试选择上个月的数据,则您在加载数据时确实设置了一个标志。
这样您就不必单击日期字段来显示上个月。
集合表达式看起来像sum({<FlagPrevMonth = {1}>}Amount)
.
好消息:使用此解决方案,您只能报告上个月。如果您尝试报告过去的更多月份,您必须做更多的标记。而且您不能点击某个月份,因为这样会再次通过整个数据集选择这个月份。
另一个不太推荐的解决方案是单独创建日历而不链接到其余数据。然后,您可以像您一样创建变量,但引用一个日历字段,选择应该在该字段上完成。 例子:
vLastDayPrevMonth = CAL.LAST_DAY_PREV
sum({<ReportDate = {'$(vLastDayPrevMonth)'}>}Amount)
然后应该在日历字段上进行选择,您可以动态生成报告。