上个月Qlikview集合分析

问题描述 投票:0回答:2

我在 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 variables qlikview
2个回答
0
投票

尝试使用

Date()
将变量转换为日期,因为
MonthEnd()
返回时间戳。

vPreviousMonth = Date(MonthEnd(AddMonths(GetFieldSelections(Reportdate),-1)))

我假设 Reportdate 是一个日期类型


0
投票

您选择了一个月,因此 Qlikview 在整个数据集中选择了这个月。这意味着所有带

Reportdate = {$(vPreviousMonth)}
的数据不再是数据集的一部分,不能被选中。如果您尝试选择上个月的数据,则您在加载数据时确实设置了一个标志。 这样您就不必单击日期字段来显示上个月。 集合表达式看起来像
sum({<FlagPrevMonth = {1}>}Amount)
.

好消息:使用此解决方案,您只能报告上个月。如果您尝试报告过去的更多月份,您必须做更多的标记。而且您不能点击某个月份,因为这样会再次通过整个数据集选择这个月份。

另一个不太推荐的解决方案是单独创建日历而不链接到其余数据。然后,您可以像您一样创建变量,但引用一个日历字段,选择应该在该字段上完成。 例子:

vLastDayPrevMonth = CAL.LAST_DAY_PREV
sum({<ReportDate = {'$(vLastDayPrevMonth)'}>}Amount)
然后应该在日历字段上进行选择,您可以动态生成报告。

© www.soinside.com 2019 - 2024. All rights reserved.