0

私は 1 日の大半をこの Web サイトや他の多くの Web サイトの閲覧に費やしましたが、まだ問題の解決策を見つけていません。

現在、次の列をプルする MS Access でクエリを実行しようとしています。

問題は、マイルストーンを最新のマイルストーンにする必要があることです。due_date は、このマイルストーンに対応しています。

各マイルストーンには自動番号 ID が入力されており、この ID を使用してクエリをまとめようとしています。

このクエリ:

SELECT E.EID, E.[CN], E.[AN], E.Status, MAX(M.ID) AS Milestone_ID
FROM [Pilot Milestone] AS M, [PP Engagements] AS E, [Pilot Milestone] AS D
WHERE E.EID=M.EID
GROUP BY M.EID, E.EID, E.[CN], E.[AN], E.Status, E.[Estimated Hours]

各 EID の最新のマイルストーン ID を残します。ただし、Due_Dates を追加すると:

SELECT E.EID, E.[CN], E.[AN], E.Status, MAX(M.ID) AS Milestone_ID, M.(Due Date)
FROM [Pilot Milestone] AS M, [PP Engagements] AS E, [Pilot Milestone] AS D
WHERE E.EID=M.EID
GROUP BY M.EID, E.EID, E.[CN], E.[AN], E.Status, E.[Estimated Hours], M.(Due Date)

EID 30 の 2 つの追加レコードを受け取りました。これらは期日がある唯一の 2 つのレコードであり、どちらも最新のマイルストーン ID を反映していません。

また、各 EID には複数のマイルストーンがあるため、期日で行ったのと同じ方法でクエリにマイルストーンの説明を入力すると、同様の問題が発生します。

どんな助けでも大歓迎です。

ありがとう

改訂

次のクエリでは、MS Access 2007 でテストしたばかりのように、重複のない due_dates の結果が得られます。

SELECT E.EID, E.[Client Name], E.[Audit Name], E.Status, MAX(M.ID) AS Milestone_ID, (
SELECT MAX ([Due Date]) FROM [Pilot Milestone] AS M2 WHERE M2.EID = M.EID) AS Due_Date
FROM [Pilot Milestone] AS M, [Potential Pilot Engagements] AS E
WHERE E.EID=M.EID
GROUP BY M.EID, E.EID, E.[Client Name], E.[Audit Name], E.Status, E.[Estimated Hours]

また、集計関数の一部としてマイルストーンの説明を追加する (結果として重複が発生する) か、複数のレコードとエラーが発生するサブクエリに追加することなく、結果にマイルストーンの説明を追加する方法がわかりません。

SELECT E.EID, E.[Client Name], E.[Audit Name], E.Status, MAX(M.ID) AS Milestone_ID, (
SELECT MAX ([Due Date]) FROM [Pilot Milestone] AS M2 WHERE M2.EID = M.EID) AS Due_Date, (
SELECT (Milestone) FROM [Pilot Milestone] AS M3 WHERE M3.EID = M.EID) AS Milestone
FROM [Pilot Milestone] AS M, [Potential Pilot Engagements] AS E
WHERE E.EID=M.EID
GROUP BY M.EID, E.EID, E.[Client Name], E.[Audit Name], E.Status, E.[Estimated Hours]
4

1 に答える 1