このディレクトリの索引
http://pc11.2ch.net/test/read.cgi/db/1274791771/29
#  まったくわからないのです教えてください・・ 
#   
#  1、名前はわかっているが、コードが不明な商品の受注明細を照会するSELECT文を記述せよ。 
#  副照会:商品名からコードを求めるSELECT文 
#  主照会:商品コードから商品の受注明細を照会するSELECT文 
#   
#  2、平均受注個数を超える商品に仕入れ先を照会するSELECT文を記述せよ。 
#  副照会:商品の平均受注個数を求めるSELECT文 
#  主照会:商品コード別に受注個数合計を求め、受注個数合計 > 平均受注個数であれば、仕入れ先を表示 
#   
#  3、1月と2月に\50,000以上の注文があった顧客からの3月受注額を照会するSELECT文を記述せよ。 
#  副照会:4月と5月に受注額合計が共に50000以上であるという条件をみたす顧客を照会 
#  主照会:顧客別に6月の受注額合計を求めるSELECT文。 
#   
#  よろしくお願いいたします・ 
#   

名前はわかっているが、コードが不明な商品の受注明細を照会する(_商品名,_受注明細) :-
        商品名(_商品コード,_商品名),
        受注明細(_顧客コード,_扱店コード,_受注日,_納品予定日,_商品コード,_荷姿,_数量,_単価,_金額,_入力時刻).

'1月と2月に50,000以上の注文があった顧客からの3月受注額を照会する'(_顧客コード,_受注額) :-
        '1月と2月に50,000以上の注文があった顧客'(_顧客コード),
        findsum(_金額,(受注明細(_顧客コード,_,_受注日,_,_,_,_,_,_金額,_),sub_atom(_受注日,4,2,_,'03')),_受注額).

'1月と2月に50,000以上の注文があった顧客'(_顧客コード) :-
        '1月に50000以上の注文があった顧客'(_1月に50000以上注文があった顧客コードならび),
        '2月に50000以上の注文があった顧客'(_2月に50000以上注文があった顧客コードならび),
        積集合(_1月に50000以上注文があった顧客コードならび,_2月に50000以上注文があった顧客コードならび,_1月と2月に50000以上の注文があった顧客コードならび),
        member(_顧客コード,_1月と2月に50000以上の注文があった顧客コードならび).

'1月に50000以上の注文があった顧客'(_1月に50000以上注文があった顧客コードならび),
        findsetof(_顧客番号,(受注明細(_顧客コード,_,_受注日,_,_,_,_,_,_金額,_),sub_atom(_受注日,5,2,'01')),_1月に注文があった顧客コードならび),
        findall(_顧客番号,(   findsum(_金額,(   member(_顧客番号,_1月に注文があった顧客コードならび),
                                                受注明細(_顧客コード,_,_受注日,_,_,_,_,_,_金額,_),
                                                sub_atom(_受注日,4,2,_,'01')),
                                       _合計金額),
                               _合計金額 > 50000),
                _1月に50000以上注文があった顧客コードならび),!.

'2月に50000以上の注文があった顧客'(_2月に50000以上注文があった顧客コードならび),
        findsetof(_顧客番号,(受注明細(_顧客コード,_,_受注日,_,_,_,_,_,_金額,_),sub_atom(_受注日,5,2,'02')),
                  _2月に注文があった顧客コードならび),
        findall(_顧客番号,(   findsum(_金額,(   member(_顧客番号,_2月に注文があった顧客コードならび),
                                                受注明細(_顧客コード,_,_受注日,_,_,_,_,_,_金額,_),
                                                sub_atom(_受注日,4,2,_,'02')),
                                      _合計金額),
                              _合計金額 > 50000),
                _2月に50000以上注文があった顧客コードならび),!. 

/*

平均受注個数を超える商品に仕入れ先を照会する(_商品コード,_顧客コード) :-
        商品ごとの平均受注個数を調べる(_商品ごとの平均受注個数ならび),
        平均受注個数を超える商品に仕入れ先を照会する(_商品ごと平均受注個数ならび,_商品コード,_顧客コード).

商品ごとの平均受注個数を調べる(_商品ごとの平均受注個数ならび) :-
        findall(_商品コード,商品名(_商品コード),_商品コードならび),
        findsetof([_顧客番号,_商品コード],
                        受注明細(_顧客コード,_,_,_,_商品コード,_,_,_,_,_),
                  _顧客コード・商品コードならび),


        荷姿変換(_荷姿,_数量,_数量_1,_単価,_単価_1,_金額,_金額_1),

荷姿変換(_荷姿,_数量,_数量,_単価,_単価,_金額,_金額) :- つまり荷姿変換は行わない.

つまり荷姿変換は行わない.
*/