このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/db/1299305530/300
#  上手くいかないので質問させてください。 
#  ACCESS2007を使っています。 
#  年フィールドと月フィールドを用いて「年度」の件数を抽出したいのですが、 
#  以下のクエリでは月部分が干渉してか上手く抽出出来ません。 
#   
#  22年4月〜23年3月 といった結果を出したいのですがどうしたらよいでしょうか? 
#   
#  SELECT 年 FROM Table1 
#  WHERE (年>21 AND 月>3) AND (年<23 AND 月<4) 
#   
# 

'年フィールドと月フィールドを用いて「年度」の件数を抽出したい'(_テーブル,L) :-
        テーブル構造(_テーブル,年,M),
        テーブル構造(_テーブル,月,N),
        findmax(U,テーブル構造(_テーブル,_,U),Max),
        length(L1,Max),
        nth1(M,L1,_年),
        nth1(N,L1,_月),
        P =.. [_テーブル|L1],
        findall(_年度,(
                    P,
                    年度のルール(_年,_月,_年度)),
                _年度ならび),
        findsetof(_年度,(
                    append(_,[_年度|_],_年度ならび),
                L2),
        findall([_年度,_度数],(
                    append(_,[_年度|_],L2),
                    count(append(_,[_年度|_],_年度ならび),_度数)),
                L).

年度のルール(_年,_月,_年度) :-
        _月 >= 4,
        _年 = _年度,!.
年度のルール(_年,_月,_年度) :-
        _月 < 4,
        _年度 is _年 - 1,!.