Remou は、一意の ID が将来的に一番上の行を参照できるようになるため有益であるという有効な指摘をしていますが、これは制御できない制約になる可能性があります。
データ ソースは、ハイフンでつながれた年で少しぎこちなく、単純なグループ化クエリを妨げています。TotalSpent
2 番目の問題は、最後のフィールドではない可能性があるため、フィールドの最大数だけでグループ化することはできないということです(たとえば、多額の払い戻しは年間の合計に影響を与える可能性があります)。
私の解決策は、各 ID (クエリ A) の最新の年を見つけてから、年タグを改良してテーブル B に結合することです。計算フィールドで結合を実行したくなかったので、別のサブクエリでラップしました (クエリB)。次に、これを元のテーブル/クエリに結合して、キーの行と値を抽出します。
SELECT YourTable.[YourYearField],
YourTable.ID,
YourTable.TotalSpent
FROM (SELECT A.ID,
[StartYear] & "-" & [EndYear] AS Grouping
FROM (SELECT YourTable.ID,
Max(Val(Right$([YourYearField], 4))) AS EndYear,
Max(Val(Right$([YourYearField], 4)) - 1) AS StartYear
FROM YourTable
GROUP BY YourTable.ID) AS A
GROUP BY A.ID,
[StartYear] & "-" & [EndYear]) AS B
INNER JOIN YourTable
ON ( B.Grouping = YourTable.[YourYearField] )
AND ( B.ID = YourTable.ID )
GROUP BY YourTable.[YourYearField],
YourTable.ID,
YourTable.TotalSpent;