2014-02-13 49 views
1

我一直在努力研究這一段時間,並沒有在網上找到太多的東西來幫助希望有人能夠提供幫助。Cognos - 由DateRange打破的交叉表報告(從週日開始)

我使用Cognos 8.4.1和SQL Server作爲數據源。我有一個日期字段,包含日期和時間。

我們的客戶希望看到該報告全年按周排列,但週日從週日開始,而不是週一。爲了增加複雜性,我需要顯示日期範圍作爲數據標籤。

因此,例如,交叉標籤的標題看起來像下面的突破,即每列中的總數。

第1/5-1/11周| 1/12-1/18 | 1/19-1/25 | 1/25-2/1 |

任何幫助表示讚賞,謝謝!

+0

您的數據源是數據倉庫還是操作系統?如果它是一個數據倉庫,你應該建立一個日曆表來滿足這個(和許多其他的)基於日期的業務規則。如果它直接來自操作系統,請發佈您當前正在使用的查詢。 –

+0

同意ElecticLlama。純粹使用Cognos來提取建模數據。創建日期維度表或一次性報告表以滿足此要求是更好更簡單的解決方案。 – toddsonofodin

+0

我們有一個數據倉庫。那麼表格應該包含兩個字段,即周開始和週末? –

回答

1

所以理想的方法是事實上有一個表與日曆數據,以便正確地做到這一點。這不是我可以在一夜之間添加到我們的Cognos環境中的,所以在臨時我提出了一個臨時解決方案。我不顯示周範圍,而是顯示每週(週日)的開始。

我創建了一個新的數據元素稱之爲[DAYOFWEEK]:

_day_of_week([mydatefield], 7) 

然後,我創建了另一個數據元素稱之爲[StartOfWeek]:

cast(CASE [DayofWeek] 
WHEN 1 THEN [mydatefield] 
ELSE _add_days([mydatefield], -1 * ([DayofWeek] - 1)) 
END,date) 

我最大的挑戰是使用添加天函數,因爲我從DATEADD開始,它是SQL的本地函數,它不起作用。

謝謝大家的意見!

+0

不要忘記將日曆表放在桌子上沒有日曆表的數據倉庫不是真正的數據倉庫。 –