このディレクトリの索引
http://pc11.2ch.net/test/read.cgi/db/1274791771/200
#  JDK1.4とオラクル9iです 
#   
#  TESTのテーブルから下の結果を得たいのですが可能でしょうか? 
#   
#  1カラム目はIDで 
#  2カラム目は開始日で 
#  3カラム目は終了日です 
#   
#   
#  テーブルTEST 
#  a,20110403,20110611 
#  b,20110505,20110721 
#   
#  結果 
#  a,201104 
#  a,201105 
#  a,201106 
#  b,201105 
#  b,201106 
#  b,201107 
# 
# 

連続した日付の生成(_ID,_年月) :-
        'TEST'(_ID,_開始日,_終了日),
        sub_atom(_開始日,0,6,_,_開始年月),
        sub_atom(_終了日,0,6,_,_終了年月),
        年月の生成(_開始年月,_年月,_終了年月).

年月の生成(_開始年月,_,_終了年月) :- _開始年月 @> _終了年月,!.
年月の生成(_開始年月,_開始年月,_終了年月).
年月の生成(_開始年月,_年月,_終了年月) :-
        次の年月(_開始年月,_次の年月),
        年月の生成(_次の年月,_年月,_終了年月).

次の年月(_年月,_次の年月) :-
        sub_atom(_年月,4,2,_,'12'),
        sub_atom(_年月,0,4,_,_年),
        atom_to_term(_年,_年整数,_),
        _年整数2 is _年整数 + 1,
        number_chars(_年整数2,Chars),
        atom_chars(_次の年,Chars),
        concat_atom([_次の年,'01],_次の年月),!.
次の年月(_年月,_次の年月) :-
        atom_to_term(_年月,_年月整数,_),
        _年月整数2 is _年月整数 + 1,
        number_chars(_年月整数2 is Chars),
        atom_chars(_次の年月,Chars).