,你不能值正確,因爲週數僅有1和53之間的值,因爲沒有辦法告訴哪一年的週數屬於你不能指定排序順序排序的原因。
但是,有一種方法可以解決這個問題。在下面的例子,讓我們假設我有我的數據表MyData
定義如下:
MyData:
LOAD
*
INLINE [
CalendarDate, Result
15/12/2014, 5
16/12/2014, 6
22/12/2014, 10
29/12/2014, 20
30/12/2014, 30
05/01/2015, 20
];
我從MyData
加載和導出週數另一個表:
MyChartData:
NOCONCATENATE
LOAD
WeekNumber,
Sum(Result) as Result
GROUP BY WeekNumber;
LOAD
Week(date#(CalendarDate,'DD/MM/YYYY')) as WeekNumber,
Result
RESIDENT MyData;
DROP TABLE MyData;
如果我圖表這些數據我有排序問題(乍一看似乎沒問題,但在這種情況下,第1周應該在第52周後來到):
現在,爲了解決這個問題,我們需要另一種方法對數據進行排序,但仍然按照每週的級別進行分組。因爲我有原始的日曆日期,所以我可以創建一個新的字段,它可以做到這一點:一個數字和一年的連接(即YYYYWW):
NOCONCATENATE
LOAD
WeekNumber,
YearWeek,
Sum(Result) as Result
GROUP BY WeekNumber, YearWeek;
LOAD
WeekNumber,
(WeekYear * 100 + WeekNumber) as YearWeek,
Result;
LOAD
Week(date#(CalendarDate,'DD/MM/YYYY')) as WeekNumber,
WeekYear(date#(CalendarDate,'DD/MM/YYYY')) as WeekYear,
Result
RESIDENT MyData;
如果我再從我的表換出WeekNumber
與WeekYear
然後替換它的東西都在尋找更好的:
編輯 - 現在重新標記尺寸值
要重新標記YearWeek
值,以便它們僅顯示爲相對索引(或「列」數字),我們可以使用計算得出的暗淡度ension並利用aggr
功能如下:
=aggr(RowNo(), YearWeek)
這就導致在圖表中,如下所示:
這種方法的好處是,你你的QlikView文檔中作取其選擇,即使基礎數據可能不連續,相對指數仍會保持連續。此外,這不會將索引硬編碼到數據模型中。
謝謝你的澄清,我爲你更新了我的答案。 – 2014-09-04 22:18:08