我有3個輸入表 - day_level如何根據用戶輸入的日期獲取輸出更改?
Dim_type Id day_date month year
1 1 2015-01-05 January 2015
1 2 2015-01-06 January 2015
1 3 2015-01-07 January 2015
1 4 2015-01-08 January 2015
1 5 2015-01-09 January 2015
1 6 2015-01-10 January 2015
1 7 2015-01-11 January 2015
1 8 2015-01-12 January 2015
1 9 2015-01-13 January 2015
1 10 2015-01-14 January 2015
1 11 2015-01-15 January 2015
1 12 2015-01-16 January 2015
1 13 2015-01-17 January 2015
1 14 2015-01-18 January 2015
1 15 2015-01-19 January 2015
1 16 2015-01-20 January 2015
這說明以周爲基礎的數據。 week_level
Dim_type Id week_number month year
2 101 week1 January 2015
2 102 week2 January 2015
2 103 week3 January 2015
2 104 week4 January 2015
2 105 week1 February 2015
這顯示了每月的基礎數據。
month_level
Dim_type Id month year
3 1001 January 2015
3 1002 January 2015
3 1003 January 2015
3 1004 January 2015
3 1005 February 2015
我有3個表根據當天的水平,周級別和月水平,這有數據。有它告訴我們哪些數據是從表像
dim_type=1 is for day level
dim_type=2 is for week level
dim_type=3 is for month level
在這裏,我不能寫一個函數/過程由用戶給定的輸入日期的基礎上,可以決定哪些數據是Dim_type列待顯示 -
這裏我給你舉一些例子,假設用戶輸入的日期爲start date- 2015-01-01 and end date- 2015-01-31
。現在這裏整個1月份需要數據,因此數據將來自月份表。 第二個像start date-2015-01-05 and end date- 2015-01-06
。現在我們沒有一個完整的月份,所以我們必須考慮週數據。所以這裏的輸出將如下所示 -
id value
102 week2 (January)
103 week3 ( ,, )
104 week4 ( ,, )
105 week5 (Febuaray)
這裏整整一週被認爲是因爲星期六和星期日是非工作日。
三是像開始日期 - 2015年1月5日,結束日期 - 二零一五年一月二十零日所以它會像
id value
102 week2 (January)
103 week3 ( ,, )
14 day level data for 18 January
15 day level data for 19 January
12 day level data for 20 January
每個表ID具有唯一的ID具有數據和這些數據是根據日期過濾器在輸出中表示。如何編寫過濾代碼是我需要幫助的部分!
所以我不能做一個存儲過程/函數,能夠告訴我們是否有整月或每週的數據,或者它應該作爲日級輸出。誰能幫我?謝謝
我已經做了,它爲我們提供了一個聚集函數按照年,季或一個月,但我在這裏堅持到如何劃分一天:( –
我不明白你想要什麼你應該更好地定義業務邏輯,日期,星期和月份的級別代表日期?第二個和第三個例子令人困惑 – tobypls
實際上它不是這樣的......它僅代表一年中的一週。 。我們沒有日期或周或月的水平,這就是爲什麼我寫這樣的原因 –