このディレクトリの索引
http://toro.2ch.net/test/read.cgi/db/1316769778/900
#  テーブル名:PRODUCT 
#   
#  CODE, PRODUCT_NAME, M_Type 
#  001,パソコン,01 
#  002,パソコン NEC,01 
#  003,パソコン FUJITSU,01 
#  004,パソコン,01 
#  005,パソコン,02 
#  006,プリンター,03 
#  ・・・ 
#   
#  とあるとき 
#   
#   
#  PRODUCT_NAMEの重複するデータを抽出するにはどうしたらいいでしょうか? 
#   
#  001,パソコン,01 
#  004,パソコン,01 
#  005,パソコン,02 
#   
#  が出て欲しい 
#   
#   
#  PRODUCT_NAMEかつM_Typeも一緒のデータを抽出するにはどうしたらいいでしょうか? 
#   
#  001,パソコン,01 
#  004,パソコン,01 
#   
#  が出て欲しい 
#   
#  お願いします。 
#   

'PRODUCT_NAMEの重複するデータを抽出する'(_CODE,_PRODUCT_NAME,_M_Type) :-
        setof(_PRODUCT_NAME,[_CODE,_PRODUCT_NAME,_M_Type] ^ (
                    'PRODUCT'(_CODE,_PRODUCT_NAME,_M_Type)),L1),
        findall(_PRODUCT_NAME,(
                    member(_PRODUCT_NAME,L1),
                    count('PRODUCT'(_CODE,_PRODUCT_NAME,_M_Type),COUNT),
                    COUNT >= 2),L2),
        member(_PRODUCT_NAME,L2),
        'PRODUCT'(_CODE,_PRODUCT_NAME,_M_Type).