2017-08-28 86 views
0

我写了一个查询来获得三个字段的总和,除了大多数总和为零。我只需要返回大于零的总和。下面是查询SQL总和,返回字段不是零

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
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 
+2

或者'Sum([Pounds] + [Dollars] + [EBITDA])> 0'稍微更紧凑(假设没有NULL) – ErikE

+1

Way better .... –

+0

你是上帝,我不是。多谢! – jDave1984

1

可以使用具有过滤器的聚合函数的结果

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值以上,如果你只需要一个,你可以使用或

可以使用并作为答案