在TableAU中的计数条件下访问2003 VBA / Sql更新表

时间:2012-03-27 15:00:27

标签: sql vba count ms-access-2003

我对Sql很新,并且在语法上缠绕我的大脑时遇到了麻烦。我有一个表PM(有字段帐户,Amt,操作,原因),我需要更新表中的几个字段,无论计数(Acct)> 1,Amt都是相同的。具体来说,基于此select语句:

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

无论如何,该代码返回我知道需要更改的记录。一旦有人解释了,我确定它会很明显,但我已经卡住了。

1 个答案:

答案 0 :(得分:2)

您可以这样做,然后您仍然使用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
)