无需双重计数即可访问加入

时间:2018-02-07 21:38:37

标签: ms-access access

我有两张桌子。一个金额按季度增量,另一个金额按年增量。我想加入这两个并且总结FEES和COUNTS而不重复计算。

Table 1         
CLM_NUM Year    Quarter FEES
1234    2016    1       100
1234    2016    2       100
1234    2016    3       100
1234    2016    4       100

Table 2         
CLM_NUM Year    COUNT   
1234    2016    10  

Desired Result:         
CLM_NUM Year    FEES    COUNT
1234    2016    400     10

然而,我的查询导致计数四次计数,结果为40,而不是10 我该如何解决这个问题?

    SELECT Table1.CLM_NUM, Table1.YEAR, Sum(Table1.FEES) AS SumOfFEES, 
    Sum(Table2.COUNT) AS SumOfCOUNT
    FROM Table1 INNER JOIN Table2 ON (Table1.CLM_NUM = Table2.CLM_NUM) AND  (Table1.YEAR = Table2.YEAR) 
    GROUP BY Table1.CLM_NUM, Table1.YEAR;

2 个答案:

答案 0 :(得分:1)

您可以使用子查询。子查询中的SUM意味着即使表2不是每年(即每个CLM_NUM / Year键有更多行),它也可以工作。

SELECT 
    t1.clm_num, 
    t1.year,
    sum(t1.fees),
    (SELECT 
        sum(t2.count) 
     FROM 
        Table2 t2
     WHERE t1.CLM_NUM = t2.CLM_NUM
       AND t1.Year = t2.Year
     GROUP BY 
        t2.CLM_NUM, t2.Year
    ) AS SumOfCount
FROM 
    Table1 t1
GROUP BY 
    t1.CLM_NUM, t1.Year

答案 1 :(得分:0)

如果访问权限没有max,请先使用 http://sqlfiddle.com/#!18/7ec1d/1

select t1.clm_num, t1.year,sum(t1.fees),max(t2.count)
from Table1 t1 inner join 
Table2 t2 on t2.clm_num = t1.clm_num and  (t1.YEAR = t2.YEAR) 
GROUP BY t1.CLM_NUM, t1.YEAR