我在 VehiclesAccSummary 表中有以下資料:

我不知道如何做到這一點,但我想要的是一個查詢,該查詢將回傳事故中只有兩輛車的所有行,并且是正面碰撞,所以在兩輛車中 PointOfImpact 是“前面”,我知道需要在同一張桌子上做一些內部連接,但我不想自己加入同一輛車。任何的想法 ?
最終結果應該是這樣的

uj5u.com熱心網友回復:
您可以使用子查詢來計算每個 AccRef 的“Front”記錄數。
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。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/359379.html
