Заявление об обновлении с самостоятельным присоединением в 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 Может ли кто-нибудь помочь?

Спасибо, Дирадж.


person DSD    schedule 20.02.2013    source источник
comment
Я получил это сам .... Спасибо   -  person DSD    schedule 21.02.2013


Ответы (1)


Несколько шагов псевдокода, так как я недостаточно хорошо знаю синтаксис 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

Вставьте эти результаты во временную таблицу

Удалите свою таблицу и воссоздайте ее из временной таблицы.

person xQbert    schedule 20.02.2013