Access 2003 VBA / Sql Update TableA при условии счета также в TableA - PullRequest
3 голосов
/ 27 марта 2012

Я очень новичок в Sql, и мне сложно обернуть мозг вокруг синтаксиса. У меня есть таблица PM (с полями Acct, Amt, Action, Reason), и мне нужно обновить несколько полей в таблице, где count (Acct)> 1, а Amt одинакова. В частности, на основании этого оператора выбора:

SELECT PM.Acct, PM.Amt
FROM PM
GROUP BY PM.Amt
HAVING (((Count(PM.Acct))>1));

Этот код возвращает те записи, которые, я знаю, нужно изменить. Как только кто-то объяснит это, я уверен, что это будет очевидно, но я застрял.

1 Ответ

2 голосов
/ 27 марта 2012

Вы можете сделать это таким образом, тогда вы все еще используете свой GROUP BY для своего Amt.Это было проверено в MS Access 2003 и обновляет только записи в подзапросе:

UPDATE PM
SET PM.Amt = newValue
    , (other fields and values)
WHERE EXISTS
(
    SELECT t.Acct, t.Amt
    FROM PM t
    WHERE PM.Acct = t.Acct
    GROUP BY t.Acct, t.Amt
    HAVING Count(t.Acct)>1
)
...