2017-02-21 57 views
0

我要開始使用SQL Server 2012尺寸表的日期與星期

上的第一個用戶評論爲數據倉庫項目創建一個三維日期表的多個第一天是....

'不同的客戶會有不同的第一天,所以不一定是星期一'。

我該如何適應在一個昏暗的表格中潛在的7個不同的星期幾開始,或者我應該簡單地計算它在事實表中的每個客戶基礎上飛行的常規方式,而不是使用昏暗的日期表?

回答

1

選項1.使用內置日期匹配功能實時計算它。 SQL Server默認爲星期日,爲一週的第一天。

選項2.在表格中爲每週的每一天在表格中創建一個附加列,指示其星期數。例如,列週二第一星期的每星期二會有一個星期,每個星期三有兩個星期。

選項3.(最佳)在日期維度上創建一個計算每天額外列的視圖。選擇中不需要的任何列都將被忽略並不計算。這給出了持久列和一致計算方法的好處,但是與預先計算相比確實有一些處理開銷。

如果您選擇選項3,請不要使用CASE語句來計算它。您必須嚴格按照日期數學方式進行操作,才能在彙總時正常運行。

+0

感謝您的回覆Wes。 我喜歡選項3的想法。所以只是爲了得到這個權利... 該視圖將包括所有可能的開始日期或只是在'按需基礎'的一個? 這個不同的開始日會影響原始Dim日期表上的所有屬性呢?即如果'星期三'然後[StartOfWeekDate] =星期幾日期,[EndOfWeekDate] =星期二日期,[DayofWeek]並且可能[DayNumber]。星期三現在是'1'還是停留爲默認'2'? 當然,只會有一些受影響的屬性,所以不確定視圖是否包含上述所有屬性x 7? –

+0

如果您需要每個客戶的所有基於周的列,那麼您需要爲每個屬性設置七個列。如果您這樣做並且正在使用SSAS,我強烈建議您在多維數據集日期維度中使用文件夾,以便爲最終用戶更好地組織它。如果星期三,如果是一週的第一天,我預計它會是一週的第一天。 –

相關問題