このディレクトリの索引

# # 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毎の入力最新日をセット したいのですが、どう書けばいいんでしょうか。' :- masterのcodeごとにdata_tblから最終取引日を採集して(_code_最終取引日ならび), masterの_last_tradingdateを書き換える(_code_最終取引日ならび). masterのcodeごとにdata_tblから最終取引日を採集して(_code_最終取引日ならび) :- findall([_code,_最終取引日],( master(_code,_last_trandingdate), date_tblの最終取引日を得る(_code,_last_trandingdate,_最終取引日)),_code_最終取引日ならび). date_tblの最終取引日を得る(_code,_last_trandingdate,_最終取引日) :- findmax(_trandingdate,( '_last_trandingdateより大きいdata_tblの_trandingdate'(_code,_last_trandingdate,_trandingdate)),_最終取引日). '_last_trandingdateより大きいdata_tblの_trandingdate'(_code,_last_trandingdate,_trandingdate) :- data_tbl(_code,_,_tradingdate), _trandingdate @> _last_trandingdate. masterの_last_tradingdateを書き換える(_code_最終取引日ならび) :- forall(member([_code,_最終取引日],_code_最終取引日ならび),masterの更新(_code,_最終取引日)). masterの更新(_code,_最終取引日) :- 一旦master節を削除して(_code), '_codeと最終取引日を追加する'(_code,_最終取引日). 一旦master節を削除して(_code) :- retract(master(_code,_)). '_codeと最終取引日を追加する'(_code,_最終取引日) :- assertz(master(_code,_最終取引日)). findmax(A,B,C) :- findall(A,B,L), max_list(L,C).