ms 访问,需要获取具有不同列的所有行
ms access, need to get all rows with a distinct column
我有一个名为“零件”的 table,它存储有关电连接器的信息,包括触点、后壳等。作为组件一部分的所有零件在名为“assemblyID”的列中都有一个值。还有一个名为“partDefID”的列,在此列中,连接器的值为 2,联系人将为 3。我需要获取具有唯一 assemblyID 的所有连接器的行。只需选择 partDefID 为 2 的行即可轻松获取表示连接器的行,但这将 return 多行连接器,这些连接器可能属于同一组件。我只需要那些具有唯一 assemblyID 的连接器行。我怎样才能做到这一点?
见下图:
我想要得到的只是下面显示的其中一行,其中任何一行都可以,因为它们都是同一程序集的一部分。
just one of these rows needed
[更新]
看来我的问题没有很好地形成,并且不赞成使用图像。不过,插入我的 table 的文本版本看起来真的很糟糕!我会努力做得更好。是的,我是 sql 和这个网站
的新手
不知道这是不是你要找的
SELECT assemblyid,count(partdefid)
FROM parts
WHERE partdefid=2
GROUP BY partdefid,assemblyid
HAVING COUNT(partdefid)=1
如果每个程序集 ID 只需要一个“连接器”行,则可以使用子查询进行过滤。假设 PartRefID
是唯一键:
select *
from parts as p
where [PartRefID] = (
select max(p1.[PartRefID])
from parts as p1
where p1.[AssemblyID] = p.[AssemblyID] and p1.[PartDefID] = 2
)
我有一个名为“零件”的 table,它存储有关电连接器的信息,包括触点、后壳等。作为组件一部分的所有零件在名为“assemblyID”的列中都有一个值。还有一个名为“partDefID”的列,在此列中,连接器的值为 2,联系人将为 3。我需要获取具有唯一 assemblyID 的所有连接器的行。只需选择 partDefID 为 2 的行即可轻松获取表示连接器的行,但这将 return 多行连接器,这些连接器可能属于同一组件。我只需要那些具有唯一 assemblyID 的连接器行。我怎样才能做到这一点?
见下图:
我想要得到的只是下面显示的其中一行,其中任何一行都可以,因为它们都是同一程序集的一部分。 just one of these rows needed
[更新] 看来我的问题没有很好地形成,并且不赞成使用图像。不过,插入我的 table 的文本版本看起来真的很糟糕!我会努力做得更好。是的,我是 sql 和这个网站
的新手不知道这是不是你要找的
SELECT assemblyid,count(partdefid)
FROM parts
WHERE partdefid=2
GROUP BY partdefid,assemblyid
HAVING COUNT(partdefid)=1
如果每个程序集 ID 只需要一个“连接器”行,则可以使用子查询进行过滤。假设 PartRefID
是唯一键:
select *
from parts as p
where [PartRefID] = (
select max(p1.[PartRefID])
from parts as p1
where p1.[AssemblyID] = p.[AssemblyID] and p1.[PartDefID] = 2
)