使用Local SQL查询两张Paradox表出现求和结果翻倍问题求助
解决Local SQL中Paradox表关联汇总重复计算的问题
问题根源
你当前的SQL直接关联Art和Bet表后汇总,会因为笛卡尔积导致重复计算:
- Nr=100在
Art中有2条记录,在Bet中有2条记录,关联后生成4条记录 - 每条
Art的Summa被重复计算了2次,最终SUM结果为(5000+1000)×2=12000,而非预期的6000
正确解决方案
根据你的需求,分两种场景处理:
场景1:仅汇总收款金额
直接从Bet表(收款记录表)按Nr汇总即可:
SELECT Nr, SUM(Summa) AS TotalReceipts FROM Bet GROUP BY Nr ORDER BY Nr
场景2:同时汇总销售金额和收款金额
先分别对两张表按Nr汇总,再通过Nr关联,避免重复计算:
SELECT art.Nr, art.TotalSales, bet.TotalReceipts FROM (SELECT Nr, SUM(Summa) AS TotalSales FROM Art GROUP BY Nr) art JOIN (SELECT Nr, SUM(Summa) AS TotalReceipts FROM Bet GROUP BY Nr) bet ON art.Nr = bet.Nr ORDER BY art.Nr
执行后,Nr=100的TotalSales和TotalReceipts都会返回6000,符合预期。
内容的提问来源于stack exchange,提问作者Bosse
相关产品推荐
相关产品推荐

