2013-07-19 77 views
1

我在我的產品中使用了下表(emp)。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列。如果記錄,匹配​​經理和部門那段時間只有我必須更新。

我曾嘗試下面的查詢,

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

但它更新的所有記錄,按照該例子,我只想更新101和103 107不應該得到更新,因爲這部門是不同的。請提出一些想法並節省我的時間

+0

這無關與iOS。這是一個基本的SQL問題。 – rmaddy

回答

0

我認爲你的查詢非常接近。唯一的區別是,你要尋找name的比賽manager s表示,這是一個小改動,where條款:

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