このディレクトリの索引
http://toro.2ch.net/test/read.cgi/db/1316769778/344
#  MySQL 5.1 使用しています。 
#   
#  出勤カレンダーを作って、工程表を作りたいのですが、出勤日テーブルに 
#  出勤日テーブルは以下のようにして 
#   
#  T_出勤日 
#   
#  日にち,   出勤 
#  ---------------- 
#  1月5日  ○ 
#  1月6日  ○ 
#  1月7日  × 
#  1月8日  × 
#  1月9日  ○ 
#   
#  「今日」が出勤日(○)として、「今日の前の出勤日からはじめて、 
#  今後の出勤日」を抜き出すSQL文はどう書いたらよいのでしょう? 
#  つまり、「今日」が2番目に来るような抜き出し方です。 
#  一応、考えたのは 
#   
#  (SELECT 日にち FROM T_出勤日 WHERE 出勤='○' AND 日にち<DATE() LIMIT 1) 
#  UNION 
#  (SELECT 日にち FROM T_出勤日 WHERE 出勤='○' AND 日にち>=DATE() 
#        ORDER BY 日にち ASC); 
#   
#  これより簡潔に書けるでしょうか? 
#   

'出勤カレンダーを作って、工程表を作りたい。「今日」が出勤日(○)として、「今日の前の出勤日からはじめて、今後の出勤日」を抜き出す'(_今日,[_前回の出勤日,_今日|_今後の出勤日ならび]) :-
        findall(_日にち,(
                    'T_出勤'(_日にち,○)),
                L1),
        sort(L1,L2),
        append(_,[_前回の出勤日,_今日|_今後の出勤日ならび],L2).