このディレクトリの索引
http://pc11.2ch.net/test/read.cgi/db/1252492296/751
#
#  年月日と金額を持ったテーブルがあります。前年度合計と今年度合計を出したいのですが、    
#   
#  年月日    金額 
#  20080402  200 
#  20080404  200 
#  20090401  100 
#  20090401  500 
#  20090404  300 
#   
#  とあった場合、↓にしたいです 
#   
#  年月日  今年度合計  前年度合計 
#  20090401         600                0 
#  20090402            0             200 
#  20090404         300             200 
# 
#  両年度金額が無い場合は表示無しで、年月日は8桁の数値型です。 
#  うるう年は考慮しなくて構いません。 

年月日と金額を持ったテーブルがあります。前年度合計と今年度合計を出したいのですが :-
      初めに重複しない年月日ならびを取り出します(_重複しない年月日ならび),
      見出しです,
      重複しない年月日ならびから順に年月日を取り出し今年度合計と前年度合計を計算して表示します(_重複しない年月日ならび).

初めに重複しない年月日ならびを取り出します(_重複しない年月日ならび) :-
      findsetof(_年月日,テーブル(_年月日,_),_重複しない年月日ならび).

見出しです :-
      write_formatted('%8s %10s %10s\n',[年月日,今年度合計,前年度合計]).

重複しない年月日ならびから順に年月日を取り出し今年度合計と前年度合計を計算して表示します([]) :- !.
重複しない年月日ならびから順に年月日を取り出し今年度合計と前年度合計を計算して表示します([_年月日|R]) :-
      _前年同日 is _年月日 - 10000,
      ある年月日の金額合計(_年月日,_今年度合計),
      その前年同日の金額合計(_前年同日,_前年度合計),
      年月日と今年度合計と前年度合計を表示します(_年月日,_今年度合計,_前年度合計),
      重複しない年月日ならびから順に年月日を取り出し今年度合計と前年度合計を計算して表示します(R).

ある年月日の金額合計(_年月日,_金額合計) :- findsum(_金額,(テーブル(_年月日,_金額),_金額合計).

その前年同日の金額合計(_前年同日,_前年同日金額合計) :- findsum(_前年同日金額,(テーブル(_前年同日,_前年同日金額),_前年同日金額合計).

年月日と今年度合計と前年度合計を表示します(_年月日,_今年度合計,_前年度合計) :-
      write_formatted('%t %10.0f %10.0f\n',[_年月日,_今年度合計,_前年度合計]).