0

次のデータを含むテーブルが 1 つあります。

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 が 2 つの異なる部門に関連付けられている場合は、部門のいずれかを更新する必要があります (Emp_Id=3)。1 つの Emp_Id が 2 つの同じ部門に関連付けられている場合は、1 回だけ指定する必要があります (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の構文がよくわからないため、複数のステップでPsudeoコードを作成します。

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 に答える