2012-06-15 43 views
0

我有一個表MIS_Details;它有以下欄目:將數據從一列複製到另一列用於報告

  • Cheque_status
  • 檢查彈跳日期
  • Policy_status_change_date

我使用SELECT查詢在Excel中創建報告。

我的要求如下:如果檢查狀態列的值爲'Cheque Bounce'我需要將該記錄的支票退回日期複製到Policy_status_change_date,但不更新數據庫中的表。

這只是顯示在報告中,所以我不能使用更新。

回答

0

通常,您應該能夠使用case語句來查看cheque status列中的值是否與您的文本匹配,如果是,則使用跳出日期作爲Policy_status_change_date列的值(語法可能會有所不同,具體取決於提供數據的數據庫類型)。

SELECT 
    ChequeStatus 
    ,ChequeBounceDate 
    ,CASE 
     WHEN ChequeStatus = 'Cheque Bounce' 
     THEN ChequeBounceDate 
     ELSE Policy_status_change_date 
    END AS Policy_status_change_date 
FROM 
    MIS_Details 

此外,在設計筆記,你可能想使你僅僅使用一個狀態ID進行比較,而不是實際的文本存儲可能的狀態在另一個表 - 這樣,如果你想改變稍後的狀態文本中,您不必更新所有查詢。

相關問題