0
當前遇到問題。我們正試圖建立一個報告,讓我們可以看到從一個時刻到另一個時刻的變化。例如,一個小例子就是我們希望報告在6個月前生成姓氏,並且他們的姓氏從今天開始。Oracle SQL - 查詢數據庫更改
有沒有一個SQL表達式可以爲我做到這一點? (例如,將SQL日期參數添加到數據來自6個月前的第一個姓氏列)。
謝謝
當前遇到問題。我們正試圖建立一個報告,讓我們可以看到從一個時刻到另一個時刻的變化。例如,一個小例子就是我們希望報告在6個月前生成姓氏,並且他們的姓氏從今天開始。Oracle SQL - 查詢數據庫更改
有沒有一個SQL表達式可以爲我做到這一點? (例如,將SQL日期參數添加到數據來自6個月前的第一個姓氏列)。
謝謝
使用flashback query(你必須確保數據庫設置爲支持這個第一併有足夠的閃回保留到手柄6個月的數據):
SELECT COALESCE(current.id, previous.id) AS id,
current.name AS current_name,
previous.name AS name_six_months_ago
FROM table_name current
FULL OUTER JOIN
(
SELECT id, name
FROM table_name
AS OF TIMESTAMP (ADD_MONTHS(SYSTIMESTAMP, -6))
) previous
ON (current.id = previous.id);
請提供樣品數據和預期輸出來澄清 – GurV
您的「數據庫」(無論是什麼意思)是否存儲歷史信息,或僅存儲當前信息?也就是說 - 你有一張「僱員」的表,一列是「last_name」 - 你在這個表中有一個「effective_date」列嗎?你只在表中插入'INSERT'而不是'UPDATE'?如果您可能需要報告中的歷史信息,那麼這是存儲信息的標準方式。 – mathguy
我將您的問題標記爲「範圍過寬」,因爲回答將基於您如何存儲歷史數據。由於您沒有提供足夠的信息,因此沒有人可以回答 –