2013-04-02 145 views
0

我必須複製周級數據中的記錄並將其推回,以便在前一週填充數據。因此,我得到一個星期六1/6的行,然後填寫所有列以獲得除日期之前的相同數據,直到1/1(星期日)。複製日期範圍內的記錄

所以我的來源是 日期,信息 1/6,一個

的目標應該是 1/7,B | 1/6,a | 1/5,a | 1/4,a | 1/3,a | 1/2,a | 1/1,a

**抱歉的格式,無法讓它正確顯示。

到目前爲止,我還以爲要做到這一點的最佳方式,通過使用一些工會承滴盤

SELECT date, info FROM test 
UNION ALL 
SELECT date - 1, info FROM test 
UNION ALL 
SELECT date - 2, info FROM test 

ECT要麼。

,或者做一些控制笛卡兒連接

SELECT tmp_date AS date, info FROM test AS test 
INNER JOIN date_temp_table AS dt 
    ON dt.tmp_date <= test.date 
    AND dt.tmp_date > test.date - 7 

現在,上述兩種方法但是工作,他們都非常低效的,幾乎殺了我的數據庫(Teradata數據)這樣的IM開放給任何想法,如何改進這個。

+0

由於'date'是一個保留字,我猜這只是一個例子,對嗎? – BellevueBob

回答

0

很難理解你真正想要的,但在TD13.10很容易根據使用擴大時期複製行:

SELECT 
    BEGIN(pd) AS dt, 
    info 
FROM test 
EXPAND ON PERIOD(datecol-7, datecol) AS pd 

迪特

相關問題