使用白痴创建的表格。有问题的表格没有记录ID,包括部件号和数量' s。一些零件编号将重复数十次,没有数量,有些则带有。如果任何记录中的部件号具有数量,我希望该部件号只需一次,以便该子部件不会一次向主要的多个值输入。
SELECT d046d, e024a
FROM 20121
WHERE d046d=(select sc.d046d from 20121 as sc where e024a >0)
这将失败,因为它会在子查询中找到多个记录。我已尝试过DISTINCT和FIRST,并在TOP 1中订购。
当主要查询的一部分完成时,所有操作都会失败。
答案 0 :(得分:1)
SELECT TOP 1 b.d046d, a.e024a
FROM 20121 a
inner join
(select sc.d046d as d046d from 20121 as sc where e024a >0) b
on a.d046d = b.d046d
这不是WHERE子句的合适解决方案。我认为你需要加入子查询,作为自我加入。从那里你可以选择出现的结果集的前1位。您可以根据需要使用别名。
答案 1 :(得分:1)
您不需要WHERE的子查询。如果你只想要第一条记录,你可以用TOP获得它 子句,按
添加顺序SELECT TOP 1 d046d, e024a
FROM 20121
WHERE e024a >0
ORDER BY e024a desc
答案 2 :(得分:1)
使用
SELECT DISTINCT
d046d,
e024a
FROM
20121
WHERE
e024a >0