我有一个主/明细表,并想根据明细表更新主表中的一些汇总值。我知道我可以像这样更新它们:
update MasterTbl set TotalX = (select sum(X) from DetailTbl where DetailTbl.MasterID = MasterTbl.ID)
update MasterTbl set TotalY = (select sum(Y) from DetailTbl where DetailTbl.MasterID = MasterTbl.ID)
update MasterTbl set TotalZ = (select sum(Z) from DetailTbl where DetailTbl.MasterID = MasterTbl.ID)
但是,我想在一个声明中做到这一点,如下所示:
update MasterTbl set TotalX = sum(DetailTbl.X), TotalY = sum(DetailTbl.Y), TotalZ = sum(DetailTbl.Z)
from DetailTbl
where DetailTbl.MasterID = MasterTbl.ID group by MasterID
但这不起作用。我也尝试过省略“group by”子句的版本。我不确定我是否遇到了我的特定数据库 (Advantage) 的限制,或者我的 SQL 的限制。大概是后者。任何人都可以帮忙吗?