このディレクトリの索引
http://toro.2ch.net/test/read.cgi/db/1343899481/209
#  MySQLの初歩的な質問です 
#   
#  テーブル名y2010 主キー 場所 
#   
#  場所 人口 
#  ---------------- 
#  東京 1500 
#  大阪 800 
#  福岡  500 
#   ・・・ 
#   
#  テーブル名 y2011 主キー 場所 
#   
#  場所 人口 
#  ---------------- 
#  東京 1600 
#  大阪 900 
#  福岡  600 
#   
#  のようなテーブルがあるときに、 
#   
#  テーブル名 y_sum 主キー 場所 
#   
#  場所 人口 
#  ---------------- 
#  東京 3100 
#  大阪  1700 
#  福岡  1100 
#   
#  のように、複数のテーブルから主キーを含むフィールドを参照して 
#  参照した或るフィールドの値の和を代入したフィールドをもつテーブルを新たに作成するには 
#  どのようなクエリにすればよいのでしょうか? 
#   
#  おねがいしますm(._.)m おねがい 
#   

:- dynamic(y_sum/2).

'複数のテーブルから主キーを含むフィールドを参照して参照した或るフィールドの値の和を代入したフィールドをもつテーブルを新たに作成する' :-
        setof(_場所,[_場所] ^ 場所(_場所),_場所ならび),
        append(_,[_場所|R],_場所ならび),
        人口の合計(_場所,_人口の合計),
        assertz(y_sum(_場所,_人口の合計)),
        R = [].

場所(_場所) :-
        y2010(_場所,_).
場所(_場所) :-
        y2011(_場所,_).

人口(_場所,_人口) :-
        y2010(_場所,_人口).
人口(_場所,_人口) :-
        y2011(_場所,_人口).

人口の合計(_場所,_人口の合計) :-
        findsum(_人口,人口(_場所,_人口),_人口の合計).