( SQL ビュー)
SELECT [Q1].[autoNo_Min] AS [autoNo],
[所属歴テーブル].[人],
[所属歴テーブル].[役職],
[所属歴テーブル].[部門],
Min([所属歴テーブル].[在籍開始日]) AS [在籍開始日],
Max([所属歴テーブル].[在籍終了日]) AS [在籍終了日]
FROM [所属歴テーブル],
(SELECT [所属歴テーブル].[autoNo] AS [autoNo_Min],
Nz((SELECT Min(tmp2.[autoNo]) - 1
FROM [所属歴テーブル] tmp2
WHERE tmp2.[autoNo] > [所属歴テーブル].[autoNo]
AND ( tmp2.[人] <> [所属歴テーブル].[人]
OR tmp2.[役職] <> [所属歴テーブル].[役職]
OR tmp2.[部門] <> [所属歴テーブル].[部門])),
[所属歴テーブル].[autoNo]) AS [autoNo_Max]
FROM [所属歴テーブル]
WHERE NOT EXISTS (SELECT tmp.[autoNo]
FROM [所属歴テーブル] tmp
WHERE tmp.[autoNo] = [所属歴テーブル].[autoNo] - 1
AND tmp.[人] = [所属歴テーブル].[人]
AND tmp.[役職] = [所属歴テーブル].[役職]
AND tmp.[部門] = [所属歴テーブル].[部門])) [Q1]
WHERE [所属歴テーブル].[autoNo] Between [Q1].[autoNo_Min] And [Q1].[autoNo_Max]
GROUP BY [Q1].[autoNo_Min],
[所属歴テーブル].[人],
[所属歴テーブル].[役職],
[所属歴テーブル].[部門]
ORDER BY [Q1].[autoNo_Min];
以上のクエリのような結果を得たい、ということでしょうか。