如何 select ms ACCESS 中与满足条件相关的所有行

How to select all rows that are related to satisfied condition in ms ACCESS

我在 table VehiclesAccSummary 中有以下数据:

我不知道该怎么做,但我想要的是一个查询,该查询将 return 所有行,那里只有两辆车发生事故,而且是正面撞车,所以在两辆车中都有 PointOfImpact 'Front' 我知道需要在同一个 table 上做一些内部连接,但我不想自己连接同一辆车。有什么想法吗?

最终结果应该是这样的

您可以使用子查询来计算每个 AccRef 的“前”记录数。

   SELECT *
   FROM VehiclesAccSummary INNER JOIN
        (SELECT VehiclesAccSummary.AccRef, Count(VehiclesAccSummary.PointOfImpact) AS CountOfPointOfImpact FROM VehiclesAccSummary GROUP BY VehiclesAccSummary.AccRef, VehiclesAccSummary.PointOfImpact HAVING VehiclesAccSummary.PointOfImpact="Front")  AS FrontCount
   ON VehiclesAccSummary.AccRef = FrontCount.AccRef
   WHERE VehiclesAccSummary.NumCars = 2 AND CountOfPointOfImpact = 2;

这会将记录限制为 NumCar = 2 且 Front 记录数 = 2 的 AccRefs。

编辑: 由于同一辆汽车可以列在多个记录中,我们需要一种新方法。试试这个:

SELECT VehiclesAccSummary.*, Subquery.CountOfPointOfImpact
FROM VehiclesAccSummary LEFT JOIN (SELECT VehiclesAccSummary.AccRef, Count(VehiclesAccSummary.PointOfImpact) AS CountOfPointOfImpact
FROM VehiclesAccSummary
WHERE (((VehiclesAccSummary.PointOfImpact)<>"Front"))
GROUP BY VehiclesAccSummary.AccRef) AS Subquery ON VehiclesAccSummary.AccRef = Subquery.AccRef
WHERE (((Subquery.CountOfPointOfImpact) Is Null));

这不是确认正面事故的计数是 2,而是确认非正面事故的计数是 0。