总和与表达,并通过组在Access 2007/VBA
这里是我开始的代码,不工作很正确:总和与表达,并通过组在Access 2007/VBA
UPDATE mt SET mt.action = 'A', mt.TQA = TRUE,
mt.OPID = 'SYS', mt.rc= 'DAR', mt.h='DAR'
WHERE EXISTS
(
SELECT mt.Account FROM mt AS pm
WHERE mt.Account = pm.Account
GROUP BY pm.Account, pm.[amount] + Nz(pm.[SFS],0)
HAVING (pm.[amount] + Nz(pm.[SFS],0) > 500)
);
我需要的是数量和SFS的总和为该帐户的这500多名
例如,所有实例,如果我有如下表
Account Amount SFS 123 350.00 0.00
123 125.00 125.00
123 350.00 0.00
123 125.00 125.00
234 1600.00 5.00
345 2.50 4.60
我应该得到
123 1200.00 234 1605.00
我用上面的代码得到的是不同的总计独自一人,而不是组,这意味着他们不会被抓到> 500:
123 350.00 123 250.00
234 1605.00
谁能帮助?这让我们中的5人难倒。
回答:
我需要使用两个子查询。这是最后的工作。
UPDATE mt SET rc='DAR'
WHERE Account IN
(
SELECT mt.account
FROM
(
SELECT mt.Account, SUM(mt.[amount]+Nz(mt.[SFS],0)) as total
FROM mt
GROUP BY mt.Account
)
WHERE total>=500
);
回答:
by子句从组中删除pm.[amount] + Nz(pm.[SFS],0)
- 你不想按总和,只有账户
回答:
也许这是你在找什么:
UPDATE mt SET mt.action = 'A', mt.TQA = TRUE,
mt.OPID = 'SYS', mt.rc= 'DAR', mt.h='DAR'
WHERE EXISTS
(
SELECT mt.Account FROM mt AS pm
WHERE mt.Account = pm.Account
GROUP BY pm.Account, pm.[amount] + Nz(pm.[SFS],0)
HAVING (SUM(pm.[amount] + Nz(pm.[SFS],0)) > 500)
);
以上是 总和与表达,并通过组在Access 2007/VBA 的全部内容, 来源链接: utcz.com/qa/261221.html