обновление таблицы из другой таблицы критериями - PullRequest
0 голосов
/ 13 декабря 2011

Я пытаюсь написать запрос, который обновит scheid для строки с идентификатором соответствующей строки из другой таблицы.

tblschemes b содержит подробную информацию о схемах, а tblclaims_liberty a содержит данные заявок и поля, к которым нужно присоединиться: b.nett_scheme = a.schemename и a.agentcode = b.agentcode

почему тогда idПриведенный ниже запрос выделяет scheid для строк данных, которые не соответствуют коду агента.

update tblclaims_liberty

set tblclaims_liberty.schemeid = tblschemes.id

from tblschemes inner join tblclaims_liberty on tblclaims_liberty.schemename = tblschemes.nett_scheme and tblclaims_liberty.agentcode = tblschemes.agentcode 



where 

    ce_report = 'yes' 
    and (tblclaims_liberty.schemeid != tblschemes.id or schemeid is null) --only updates rows that require updateing instead of 6mil+ lines of data. 

Может кто-нибудь указать мне правильное направление ??почему он не распознает совпадение кода агента?

С уважением,

Адам

1 Ответ

1 голос
/ 13 декабря 2011

Попробуйте выполнить следующее:

update tblclaims_liberty TLtoUpdate
set TLtoUpdate.schemeid = 
(
select TS.id
from tblschemes TS inner join tblclaims_liberty TL on TL.schemename = TS.nett_scheme and TL.agentcode = TS.agentcode 
where TL.schemeid = TLtoUpdate.schemeid
)
where TLtoUpdate.ce_report = 'yes' and TLtoUpdate.schemeid is null 

Похоже, что в подзапросе отсутствует условие TL.id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...