Qlikview 滚动 12 个月财政

Posted

技术标签:

【中文标题】Qlikview 滚动 12 个月财政【英文标题】:Qlikview Rolling 12 Month Fiscal 【发布时间】:2012-06-15 10:01:59 【问题描述】:

这个论坛似乎更适合更多编程问题,但如果有人会查看以下链接中的逻辑问题,我会很感兴趣。我的问题是如何使用已经定义的日历计算前 12 个月的总数。我在 QV 社区中发现的例子很少。请参阅以下链接了解更多详情。我愿意查看 SQL 或 QV 脚本解决方案。

我们的会计年度从 11 月到 10 月。我希望最终用户选择年份和图表来显示最后滚动的 12 个月保证金。我在累积前几个月的总数时遇到了问题。我的目标是让它看起来类似于手动计算的 Excel 图像“目标”中的 Rolling 12 Month Total - GP 列。 (看QV链接截图)

滚动边际方程:我尝试使用集合分析来制作滚动平均方程

=Sum(<master_date='>=$(=MonthStart(Max(master_date), -12))<=$(=MonthEnd(Max(master_date)))'>

万事达

TempCalendar:
LOAD
$(vDateMin) + RowNo() - 1 AS DateNumber,
Date($(vDateMin) + RowNo() - 1) AS TempDate
AUTOGENERATE 1
WHILE $(vDateMin)+IterNo()-1<= $(vDateMax);

MasterCalendar:这使用 master_date 将项目连接在一起。这个会计日历很难和滚动平均值放在一起

LOAD
TempDate AS master_date,
Day(TempDate) AS CalendarDay,
      WeekDay(TempDate) AS CalendarWeekDay,
      Week(TempDate) AS CalendarWeek,
      Month(TempDate) AS CalendarMonth,
      Year(TempDate) AS CalendarYear,
      'Q' & Ceil(Month(TempDate)/3) AS CalendarQuarter,
      WeekDay(TempDate) & '-' & Year(TempDate) AS CalendarWeekAndYear,
      Month(TempDate) & '-' & Year(TempDate) AS CalendarMonthAndYear,
      If(Num(TempDate) >= $(vYearStart) AND Num(TempDate) < $(vMonthNow), -1, 0) AS YTD, 
      If(Num(TempDate) >= $(vYearStartLY) AND Num(TempDate) < $(vMonthNowLY), -1, 0) AS LY_YTD,
      Year2Date(TempDate) * -1 AS YTD_Flag,
      Year2Date(TempDate,-1, 1, $(vToday))*-1 AS LY_YTD_Flag
RESIDENT TempCalendar ORDER BY TempDate ASC;

DROP TABLE TempCalendar;

FiscalCalander> 这定义了我们的财政年度

FiscalCalendar:
LOAD date(date#(20011101,'YYYYMMDD')+recno(),'MM/DD/YY') AS "master_date"
AUTOGENERATE today()-date#(20011101,'YYYYMMDD');
LEFT JOIN (FiscalCalendar)
LOAD
"master_date",
date(monthstart(master_date),'MMM YY') AS "MonthFisical",
date(monthstart(master_date),'MMM') AS "MonthFisical_MonthTitle",
date(yearstart(master_date,1,11),'YYYY') AS "YearFiscal",
month(master_date)-month(num(today(1))) AS FiscalMonthsElapsed,
YearToDate(master_date, 0,11)*-1 AS YTD_FLAG_Fiscal,
YearToDate(master_date,-1,11)*-1 AS LY_YTD_FLAG_Fiscal
RESIDENT FiscalCalendar;

要查看屏幕截图: http://community.qlikview.com/message/219912#219912

感谢您抽出宝贵时间查看此问题。

【问题讨论】:

我希望这包含足够的信息/上下文 看来community.qlikview.com/message/219912#229267 有解决办法。 【参考方案1】:

解决方案不在日历中:您必须在日历和事实表之间创建一个数据透视表。

在此数据透视表中,您有 2 种类型:DIRECT 和 CROSSING。

对于 DIRECT 类型,事实表中的一行链接到日历中的日期 对于 CROSSING 类型,事实表中的一行链接到日历中未来 12 个月的所有日期。

所以在 Qlikview 中,您一直使用 DIRECT 类型,除非您想为每个月显示过去 12 个月的总数。在这种情况下,您使用 CROSSING,因为所有行都与未来 12 个月的日期相关联,因此这意味着(相反的观点)一个月与过去 12 个月的所有数据相关联。

例子:

xlsx

QVW

【讨论】:

以上是关于Qlikview 滚动 12 个月财政的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 groupby 计算 12 个月的滚动总和?

在 MicroStrategy 中滚动 12 个月的 Salesforce

我如何回应财政年度?

sap事务类型哪些可以跨年

SQL Hive - 计算前几个月的滚动 SUM、AVG

计算 Pandas 列中值的 3 个月滚动计数