2012-06-12 5 views
7

このフォーラムは、プログラミングの問題が増えているようですが、誰かが以下のリンクのロジックの問題を見ると興味があります。私の問題は、既に定義されているカレンダーを使用して前の12ヶ月の合計を計算する方法です。私はQVコミュニティーでこれの例はほとんど見つかりませんでした。詳細は以下のリンクをご覧ください。私は、SQLまたはQVスクリプトのソリューションを見ていきたいと思います。Qlikviewローリング12月財政

私たちの会計年度は11月から10月までです。エンドユーザーに年とチャートを選択して、最後の12ヶ月分の転記を表示したいと思います。私は前の月間に私の合計を蓄積することに問題がありました。私の目標は、手作業で触発されたExcelの画像「Goal」の「ローリング12ヶ月合計 - GP」の列に似ています。 (スクリーンショットのためのQVリンクを見てください)

ローリングマージン方程式は:ローリング平均方程式を作るために設定分析を使用する私の試み

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

MasterCalendar

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

は、時間を割いていただきありがとうございますこの問題を見る

+0

私は、これは十分な情報が含まれている/コンテキスト –

+0

はhttp://community.qlikview.com/message/219912#229267は、ソリューションが含まれていることを思え願っています。 – smartmeta

答えて

0

ソリューションはカレンダーにありません。カレンダーとファクトテーブルの間にピボットテーブルを作成する必要があります。

このピボットテーブルには、2種類のタイプがあります。直接と交差です。

タイプDIRECTの場合、ファクトテーブルの行はカレンダーの日付にリンクされます タイプCROSSINGの場合、ファクトテーブルの行はカレンダーの今後12ヶ月のすべての日付にリンクされます。

Qlikviewでは、過去12か月の合計を毎月表示したい場合を除いて、常にDIRECT型を使用します。この場合は、すべての行が12ヶ月の日付にリンクされているため、CROSSINGを使用します。これは、過去12ヶ月のすべてのデータに月がリンクされていることを意味します(逆の視点)。

例:

xlsx

QVW

関連する問題