このディレクトリの索引

# 出典 :: SQL質疑応答スレ 9問目 #307 # # 業務テーブル G_info # 業務ID | 業務名 | # G0001 | ○○設計 | # G0002 | ××調査 | # G0003 | ○△設計 | # # 業務担当テーブル G_charge # 業務ID | 役割 | 社員ID # G0001 | 管理 | P101 # G0001 | 検査 | P103 # G0001 | 設計 | P105 # G0002 | 管理 | P102 # G0002 | 検査 | P103 # G0002 | 設計 | P106 # G0003 | 管理 | P101 # G0003 | 検査 | P104 # G0003 | 設計 | P107 # # こんなテーブル構成だったとして、 # 設計 = P101 かつ 検査 = P103 の担当者を持つ業務名を取り出すにはどのようにすれば良いのでしょうか? ?- 業務テーブル(A,X),業務担当テーブル(A,設計,'P101'),業務担当テーブル(A,検査,'P103'). '>>459のテーブル表示ファイルからテーブルを抜き取り述語として定義する'(_ファイル) :- get_split_lines(_ファイル,[' ','|'],Lines), 一つ以上のテーブルを述語として定義(Lines). 一つ以上のテーブルを述語として定義(Lines) :- append(_,[[A,B]|L2],Lines), append([_|L3],[''|L4],L2), sub_atom(A,_,_,_,_テーブル名,テーブル,_,_,_,_), テーブルを述語として定義(_テーブル名,L3), 一つ以上のテーブルを述語として定義(L4). 一つ以上のテーブルを述語として定義(_). テーブルを述語として定義(_テーブル,L) :- member(L1,L), P =.. [_テーブル|L1], assertz(P), fail. テーブルを述語として定義(_,_).