0

我有一张包含以下数据的表格。

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 的任何内容有人可以帮忙吗?

谢谢, 迪拉吉

4

1 回答 1

0

多步骤伪代码,因为我不太了解 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

将这些结果插入临时表

删除您的表并从临时表中重新创建它。

于 2013-02-20T13:28:23.540 回答