0

マイコード

Access クエリがあります。

SELECT DISTINCT [Request-Priority, ALL_Q].RequestID, "Awaiting Approval" AS RequestStatus
FROM [Request-Priority, ALL_Q] LEFT JOIN LIST_RequestBurndown_Q ON [Request-Priority, ALL_Q].RequestID = LIST_RequestBurndown_Q.RequestID
WHERE (((LIST_RequestBurndown_Q.MilestoneStatus)="Awaiting Approval") AND (([Request-Priority, ALL_Q].[Completed on]) Is Null))

UNION

SELECT DISTINCT [Request-Priority, ALL_Q].RequestID, "Blocked (see notes)" AS RequestStatus
FROM [Request-Priority, ALL_Q] LEFT JOIN LIST_RequestBurndown_Q ON [Request-Priority, ALL_Q].RequestID = LIST_RequestBurndown_Q.RequestID
WHERE (((LIST_RequestBurndown_Q.MilestoneStatus)="Blocked (see notes)") AND (([Request-Priority, ALL_Q].[Completed on]) Is Null))

UNION

SELECT DISTINCT [Request-Priority, ALL_Q].RequestID, "Completed - Awaiting Rollout" AS RequestStatus
FROM [Request-Priority, ALL_Q] LEFT JOIN LIST_RequestBurndown_Q ON [Request-Priority, ALL_Q].RequestID = LIST_RequestBurndown_Q.RequestID
WHERE (((LIST_RequestBurndown_Q.MilestoneStatus)="Completed") AND (([Request-Priority, ALL_Q].[Completed on]) Is Null));

クエリの基本概念... 個々のマイルストーンのステータス ( LIST_RequestBurndown_Q.MilestoneStatus) に基づいて、RequestID の全体的なステータスを決定します ( [Request-Priority, ALL_Q].RequestID)。

私の問題

一部の RequestID では、複数のステータスにマイルストーンが存在します。たとえば、次のような結果が得られる場合があります。

RequestID   RequestStatus 
123         Awaiting Approval 
243         Blocked 
243         Awaiting Approval 
243         Completed - Awaiting Rollout 
542         Awaiting Approval

私がやりたいのは、RequestStatus表示される「優先順位付け」で、 ごとに 1 つのレコードしかありませんRequestID

ORDER BYWHERE、を使用してこれを行う方法を考えようとしてきましたがDISTINCT ON、可能性のあるステータスオプションと関連する優先度のテーブルを作成して使用することもできますMAXが、この時点ではこれを考えすぎています。どんな助けでも大歓迎です!

4

1 に答える 1