2013-07-19 6 views
1

Я использовал следующий стол (emp) в своем продукте.UPDATE QUERY IN IOS

+-----+------+---------+------+-----------+-----+ 
| id | name | Manager | dept | ismanager | DOJ | 
+-----+------+---------+------+-----------+-----+ 
| 101 | XXX | YYY  | 1 |   0 |  | 
| 102 | XX | YY  | 2 |   0 |  | 
| 103 | XXX | YYY  | 1 |   0 |  | 
| 104 | XX | YY  | 2 |   0 |  | 
| 105 | XXX | kkk  | 2 |   0 |  | 
| 106 | XX | zzz  | 2 |   0 |  | 
| 107 | XXX | YYY  | 2 |   0 |  | 
+-----+------+---------+------+-----------+-----+ 

Я хочу отредактировать столбец isManager на основе столбца «dept» и Manager. если записи, совпадают как с менеджером, так и с отделом, только мне нужно обновить.

Я попытался следующий запрос,

update managertable set ismanager = '1' where manager IN(select manager from managertable group by manager,dept having count(*) > 1). 

Но обновить все записи, согласно примеру я хочу обновить только 101 и 103. 107 не должны получить обновление, потому что отдел отличается. Пожалуйста, предложите какую-нибудь идею и сэкономьте мое время.

+0

Это не имеет ничего общего с прошивкой. Это основной вопрос SQL. – rmaddy

ответ

0

Я думаю, что ваш запрос довольно близок. Единственное отличие состоит в том, что вы хотите посмотреть на name с, что соответствует manager с, что небольшое изменение в п where:

update managertable 
    set ismanager = '1 
     where name IN (select manager 
        from managertable 
        group by manager,dept 
        having count(*) > 1 
        )