2013-02-20 18 views
0

我有一個包含以下數據的表。在sybase中自加入的更新語句

Emp_Id Name dept cat 
1  abc    P 
1    HC  G 
2  def    P 
2    ET  G 
3  ghi    P 
3    BC  G 
3    MN  G 
4  jkl    P 
4    LS  G 
4    LS  G 

我想更新此表格以產生類似的輸出記錄。

Emp_Id  Name dept cat 
    1  abc  HC  P 
    2  def  ET  P 
    3  ghi  BC  P 
    4  jkl  LS  p 

如果EMP_ID與兩個不同的部門相關聯,那麼它應該更新部門中的任一個(EMP_ID = 3)。如果一個Emp_Id與兩個相同的部門相關聯,那麼它應該來一次(Emp_Id = 4)。 我使用下面的查詢

UPDATE Table1 
    SET a.dept = b.dept 
    from Table1 a, Table1 b   
    WHERE 
     a.Emp_Id=b.Emp_Id 
     and a.cat='P' 

,但它不是爲EMP_ID 3更新任何東西,4 誰能幫助?

感謝, DHIRAJ

+0

我自己得到了....謝謝 – DSD 2013-02-21 04:45:37

回答

0

多個步驟Psudeo代碼,因爲我不知道SYBASE的語法不夠好:

Get the results you're after in a select. 
SELECT EMP_ID, max(name), max(Dept), max(cat) 
FROM tableName 
GROUP BY EMPI_ID 

插入這些結果到一個臨時表

放下你的表並重新創建它來自臨時表。