我有一个查询,可以查询个人的月收入。我想得到他们不同收入的总和(2个工作,退休金等)。由于它们是月度值,因此我还需要乘以12才能得出其年总收入

select DISTINCT f.monthly * 12 as [Income]
    FROM
    Money
    WHERE
    ID_ = 5
    AND type = 'income';


这给了我

Income
6756
32772


这就是我试图汇总专栏的方式

select DISTINCT SUM(f.monthly * 12) as [Income]
        FROM
        Money
        WHERE
        ID_ = 5
        AND type = 'income';


这给我

Income
237168


当总数应为39528时。我尝试移动方括号,以便首先对列求和,然后乘以12,但得到的结果相同

最佳答案

您需要将distinct放置在sum函数内部,而不是外部...

select SUM(DISTINCT f.monthly * 12) as [Income]
    FROM
    Money
    WHERE
    ID_ = 5
    AND type = 'income';

关于sql - sum()不能按预期工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51483026/

10-12 23:31