在访问查询的输出中删除零

时间:2010-06-30 23:04:22

标签: sql ms-access

我在访问中有一个查询:

SELECT iif([Cup Type] like '*Cylinder*',count([Cup Type]),0) AS Cylinder, 
iif([Cup Type] like '*Snap*',count([Cup Type]),0) AS Snap, 
iif([Cup Type] like '*Tip*',count([Cup Type]),0) AS Tip, 
iif([Cup Type] like '*Other*',count([Cup Type]),0) AS Other
FROM [Lab Occurrence Form]
WHERE [1 0 Preanalytical (Before Testing)] Like '*1.3 QNS-Quantity Not Sufficient*' 
And ((([Lab Occurrence Form].[Occurrence Date]) 
Between Forms!Meeting_Reasons_Frequency!Text4 
And Forms!Meeting_Reasons_Frequency!Text2))
GROUP BY [Cup Type];

输出如下:

Cylinder    Snap    Tip Other
0   0   0   0
71  0   0   0
0   0   0   18
0   7   0   0
0   0   4   0

我为可怕的格式道歉,但我如何摆脱零?

我应该做select cylinder, snap, tip, other, from query1 where cylinder <> 0 etc..???

之类的事情

我希望输出为:

Cylinder    Snap    Tip Other
71  7   4   18

3 个答案:

答案 0 :(得分:2)

在您澄清之后,您想要的是切换count()和IIf()的顺序并将其更改为sum()以便获得

sum(iif([Cup Type] like '*Cylinder*', 1, 0))

然后删除group by以便只获得一个结果行。

答案 1 :(得分:1)

你的意思是你想要用全零除去行吗? 然后你必须添加像

这样的东西
AND ([Cup Type] like '*Cylinder*' or [Cup Type] like '*Snap*' or [Cup Type] like '*Tip*' or [Cup Type] like '*Other*')

到你的地方。

答案 2 :(得分:1)

目前尚不清楚您要分组的内容,但您可以在每个字段上使用Max()。

但我怀疑这个问题比你的解释所说的更复杂。