我在Qlikview上工作了几个星期,并加载了包含Reportdate(尝试日期和日期时间类型)的SQL服务器数据,这些数据总是一个月的日期。
现在我创建了一个变量,如下所示:
vPreviousMonth = MonthEnd(AddMonths(GetFieldSelections(Reportdate),-1))
我通过选择所有不同的日期来检查结果。结论总的来说是正确的结果。选择2014-01-31
可获得2013-12-31
,2014-03-31
可获得2014-02-28
等。
现在我想在set analysis选项中使用此变量来汇总上个月的所有金额。我使用了以下表达式:
sum( { $< Reportdate = {$(vPreviousMonth)} > } Amount )
没有成功。我也尝试过数字日期,但也没有成功。 是否有人可以帮助我找到可行的解决方案?
谢谢!
答案 0 :(得分:0)
尝试使用Date()
将变量转换为日期,因为MonthEnd()
会返回时间戳。
vPreviousMonth = Date(MonthEnd(AddMonths(GetFieldSelections(Reportdate),-1)))
我假设Reportdate是日期类型
答案 1 :(得分:0)
您选择了一个月,因此Qlikview将在整个数据集中选择本月。这意味着Reportdate = {$(vPreviousMonth)}
的所有数据都不再是数据集的一部分,无法选择。如果您尝试选择上个月的数据,则在加载数据时设置了标记。
然后,您不必单击日期字段来显示上个月。
集合表达式看起来像sum({<FlagPrevMonth = {1}>}Amount)
。
很高兴知道:使用此解决方案,您只能报告上个月。如果您尝试在过去报告更多月份,则必须执行更多标记。并且您不能单击一个月,因为这个月将再次通过整个数据集选择。
另一个不太推荐的解决方案是在没有指向其余数据的链接的情况下创建日历。然后,您可以创建与您类似的变量,但可以参考日历字段,在该字段上可以进行选择。
例:
vLastDayPrevMonth = CAL.LAST_DAY_PREV
sum({<ReportDate = {'$(vLastDayPrevMonth)'}>}Amount)
然后应该在日历文件上完成选择,您可以动态生成报告。