2013-07-15 73 views
0

想,如果我有兩個表喜歡leavedata和leavestatus其中一些相關的列都在那裏(例如EMPID,引用號),現在我想使作出的leavedata表中的一些變更爲其他的一些列(即狀態)。如何通過檢查兩個EMPID和引用號兩個表中的值更新狀態欄如何檢查兩個表中的值是否相同或不在postgresql內?

sample data 

leavedata table 

empid refno  status no.of days 
101  1  pending  4 



leavestatus table 

empid refno  check 
101   1  null 
+0

這是一個好的開始,但是要弄清楚你想要什麼還是很難的。更多行樣本數據和另一張顯示您預期結果的表格將對您有所幫助。所以會顯示你的PostgreSQL版本('select version()')和你已經嘗試過的東西。 –

+0

如果要發佈[類似這樣的新問題(http://stackoverflow.com/questions/17648985/how-to-insert-the-multiple-values-at-a-time-using-triggers)這是禮貌取悅*回覆現有的改善您的問題的要求*。請記住,*您可以編輯您的問題*添加更多詳細信息。 –

回答

1

這聽起來有點像你可能想UPDATE ... FROM創建功能,但它很難說給出的稀疏細節。

是這樣的:

UPDATE leavedata 
SET status = 'approved' 
FROM leavestatus 
WHERE leavestatus.empid = leavedata.empid 
    AND leavestatus.refno = leavedata.refno 
    AND leavestatus."check" IS NOT NULL; 

按摩酌情;你沒有定義leavedata.check等的含義,所以我正在圍繞這些手揮手。 請勿運行本聲明,恕不另行通知;用它作爲指導,瞭解你需要做什麼,記住:始終進行事務內部備份測試語句所以你可以ROLLBACK

順便說一句,「檢查」是一個可怕的列名;它是SQL標準中的保留字,不能用作標識符。你必須在任何地方都有"double quote"

將來試着描述一下你想要實現的更多,並且如果可能的話,在SQLFiddle like this中提供更完整的採樣數據,但是更多INSERT s。

+0

+1我認爲你很接近,但我們可能永遠都不會知道:/ – Bohemian

相關問題