SQL Sum,返回非零的字段

时间:2017-08-28 18:52:48

标签: sql ms-access

我已经编写了一个查询来获取三个字段的总和,除了大多数字段总和为零。我只需要返回大于零的总和。以下是查询

SELECT [Product], 
SUM([Pounds]) as SumPounds, 
SUM([Dollars]) as SumDollars, 
SUM([EBITDA]) as SumEBITDA 
FROM MyTable 
WHERE ([Year] = '2017' AND [Date] <= #8/20/2017#) 
SORT BY [Product];

有没有办法只在Access中返回大于零的总和?

2 个答案:

答案 0 :(得分:2)

SELECT [Product], 
       SUM([Pounds]) as SumPounds, 
       SUM([Dollars]) as SumDollars, 
       SUM([EBITDA]) as SumEBITDA 
FROM MyTable 
WHERE ([Year] = '2017' AND [Date] <= #8/20/2017#) 
GROUP BY [Product]
HAVING SUM([Pounds]) + SUM([Dollars]) + SUM([EBITDA]) > 0

答案 1 :(得分:1)

您可以使用HAVING过滤聚合函数的结果

SELECT [Product], 
SUM([Pounds]) as SumPounds, 
SUM([Dollars]) as SumDollars, 
SUM([EBITDA]) as SumEBITDA 
FROM MyTable 
WHERE ([Year] = '2017' AND [Date] <= #8/20/2017#) 
HAVING UM([Pounds]) >0  AND SUM([Dollars]) > 0 AND SUM([EBITDA]) >0
SORT BY [Product];

如果您需要所有3个值,您可以使用AND,如上面的答案,如果您只需要一个,您可以使用OR