如何 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。
我在 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。