子查询 - 部件号和数量

时间:2014-10-15 18:31:15

标签: ms-access-2010

寻找所有零件号(d046d),其中至少有一条记录的vaule大于零。

d046d                        e024a
ABC123                       0
ABC123                       0
ABC123                       0
123ABC                       0
123ABC                       1
123ABC                       0
1A2B3C                       0
1A2B3C                       0

我想要的全部是123ABC

SELECT d008g, d046d, e024a
FROM 20121
WHERE (20121.[d046d])=(select sc.d046d from 20121 as sc where e024a >0)

这将是错误的,因为它会在子查询中找到多个d046d。

2 个答案:

答案 0 :(得分:1)

如果您想要的只是数量大于零的那些部分,那么您的where子句应该只是说

WHERE e024a > 0

现在你说你想要至少有一条记录的零件编号> 0,那么我可以得出结论,你只想看到每个合格的零件编号一次 - 这最好通过使用来实现 DISTINCT:

SELECT DISTINCT d008g, d046d, e024a
FROM 20121
WHERE e024a > 0

答案 1 :(得分:0)

您可以使用In运算符。 In Operator Reference

SELECT d008g, d046d, e024a
FROM 20121
WHERE (20121.[d046d]) In (select sc.d046d from 20121 as sc where e024a >0)