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