我对ACCESS 2010和SQL相对较新。找出这个有点麻烦。
我有一个从表中返回结果的查询。我想排除列A1-A4中的值都等于零的任何记录。
例如:
+----+----------+----+----+----+----+ | ID | CustName | A1 | A2 | A3 | A4 | +----+----------+----+----+----+----+ | 1 | Ben | 0 | 0 | 0 | 0 | | 2 | Tom | 0 | 0 | 0 | 1 | | 3 | Jerry | 0 | 0 | 2 | 0 | | 4 | Steve | 0 | 3 | 0 | 0 | | 5 | Dave | 4 | 0 | 0 | 0 | | 6 | Mike | 0 | 0 | 2 | 1 | | 7 | Sheila | 0 | 3 | 2 | 1 | | 8 | Jonesy | 4 | 3 | 2 | 1 | +----+----------+----+----+----+----+
使用上面的表作为查询的来源,我想要排除的唯一记录应该是第一条记录。
我用于此查询的SQL是
SELECT Test.CustName, Test.A1, Test.A2, Test.A3, Test.A4
FROM Test
WHERE (((Test.A1)<>0) AND ((Test.A2)<>0) AND ((Test.A3)<>0) AND ((Test.A4)<>0));
此SQL将仅返回A1-A4中的所有列不等于零且仅返回最终记录的记录。它应该返回记录2 - 7.
答案 0 :(得分:1)
您需要OR
,而不是AND
:
SELECT Test.CustName, Test.A1, Test.A2, Test.A3, Test.A4
FROM Test
WHERE (((Test.A1)<>0) OR ((Test.A2)<>0) OR ((Test.A3)<>0) OR ((Test.A4)<>0));
答案 1 :(得分:0)
使用OR
SELECT t.CustName, t.A1, t.A2, t.A3, t.A4
FROM Test t
WHERE (((t.A1)!=0)
OR ((t.A2)!=0)
OR ((t.A3)!=0)
OR ((t.A4)!=0));
答案 2 :(得分:0)
如果这些值不是负值,您也可以
where A1+A2+A3+A3 > 0