このディレクトリの索引
#  
#  mysql 5.5.9 
#  master 
#  code 
#  last_tradingdate 
#  
#  data_tbl 
#  code 
#  data1 
#  tradingdate 
#  
#  で、data_tblにはcode毎に取引日が入っています 
#  それでmasterのlast_tradingdateにcode毎の入力最新日をセット 
#  したいのですが、どう書けばいいんでしょうか。

:- dynamic(master/2,data_tbl/3).

'master 
code 
last_tradingdate 

data_tbl 
code 
data1 
tradingdate 

で、data_tblにはcode毎に取引日が入っています 
それでmasterのlast_tradingdateにcode毎の入力最新日をセット 
したいのですが、どう書けばいいんでしょうか。' :-
'全ての_codeの最終取引日ならびを得て、masterの_last_tradingdateを書き換える'.

'全ての_codeの最終取引日ならびを得て、masterの_last_tradingdateを書き換える' :-
全ての_codeの最終取引日ならびを得る(_最終取引日ならび),
masterの_last_tradingdateを書き換える(_最終取引日ならび).

全ての_codeの最終取引日ならびを得る(_最終取引日ならび) :-
findall([_code,_最終取引日],(
'_codeの最終取引日ならびを得る'(_code,_最終取引日)),_最終取引日ならび).

'_codeの最終取引日ならびを得る'(_code,_最終取引日) :-
master(_code,_),
最終取引日を得る(_code,_最終取引日)),_最終取引日ならび).

最終取引日を得る(_code,_最終取引日) :-
findmax(_trandingdate,(
data_tble(_code,_,_tradingdate)),_最終取引日).

masterの_last_tradingdateを書き換える(_最終取引日ならび) :-
forall(最終取引日を更新する(_最終取引日ならび),true).

最終取引日を更新する(_最終取引日ならび) :-
member([_code,_最終取引日],_最終取引日ならび),
retract(master(_code,_)),
assertz(master(_code,_最終取引日)).

findmax(A,B,C) :-
findall(A,B,L),
最大値(L,C).

最大値(_ならび,_最大値) :-
select(_最大値,_ならび,_残りならび),
forall(member(_要素,_残りならび),_最大値 @>= _要素).