总和与表达,并通过组在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

回到顶部