¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Îº÷°ú

% °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1295436346/173 # # ¼ÁÌ䤵¤»¤Æ¤¯¤À¤µ¤¤ # select¤·¤¿¥Ç¡¼¥¿¤ò°ìÉô¤À¤±Ê̤Υơ¼¥Ö¥ë¤ËÆþ¤ì¤ëÊýË¡¤Ã¤Æ¤¢¤ê¤Þ¤¹¤«¡© # # Îã¡§insert into table2 (aaa,bbb,ccc) select aaa as aaa,bbb as bbb,ccc as ccc from table1 # ¤³¤Î¾ì¹çtable1¤Î¥Ç¡¼¥¿¤¬¤¹¤Ù¤Ætable2¤ËÆþ¤ë¤Î¤Çaaa¤À¤±Ê̤Υǡ¼¥¿¤òÆþ¤ì¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£ # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # ³¤¤ËÀܤ·¤Æ¤¤¤Ê¤¤ÅÔÆ»Éܸ©Ì¾([ÆÊÌÚ¸©,·²Çϸ©,ºë¶Ì¸©,»³Íü¸©,ĹÌ,´ôÉ츩,¼¢²ì¸©,ÆàÎɸ©]). table1(ÆàÎɸ©,1000,aa). table1(ºë¶Ì¸©,2000,ab). select¤·¤¿¥Ç¡¼¥¿¤ò°ìÉô¤À¤±Ê̤Υơ¼¥Ö¥ë¤ËÆþ¤ì¤ëÊýË¡ :- ³¤¤ËÀܤ·¤Æ¤¤¤Ê¤¤ÅÔÆ»Éܸ©Ì¾(_³¤¤ËÀܤ·¤Æ¤¤¤Ê¤¤ÅÔÆ»Éܸ©Ì¾¤Ê¤é¤Ó), table1(_ÅÔÆ»Éܸ©Ì¾¤Î°ì,_bbb,_ccc), ¿·¤·¤¤ÅÔÆ»Éܸ©Ì¾¤ÎÀ¸À®(_³¤¤ËÀܤ·¤Æ¤¤¤Ê¤¤ÅÔÆ»Éܸ©Ì¾¤Ê¤é¤Ó,_ÅÔÆ»Éܸ©Ì¾¤Î°ì,_ÅÔÆ»Éܸ©Ì¾¤ÎÆó), assertz(table2(_ÅÔÆ»Éܸ©Ì¾¤ÎÆó,_bbb,_ccc)), fail. select¤·¤¿¥Ç¡¼¥¿¤ò°ìÉô¤À¤±Ê̤Υơ¼¥Ö¥ë¤ËÆþ¤ì¤ëÊýË¡. ¿·¤·¤¤ÅÔÆ»Éܸ©Ì¾¤ÎÀ¸À®(_³¤¤ËÀܤ·¤Æ¤¤¤Ê¤¤ÅÔÆ»Éܸ©Ì¾¤Ê¤é¤Ó,_ÅÔÆ»Éܸ©Ì¾¤Î°ì,_ÅÔÆ»Éܸ©Ì¾¤ÎÆó) :- M is (random mod 8) + 1, list_nth(M,_³¤¤ËÀܤ·¤Æ¤¤¤Ê¤¤Æ»Éܸ©Ì¾¤Ê¤é¤Ó,_ÅÔÆ»Éܸ©Ì¾¤ÎÆó), \+(_ÅÔÆ»Éܸ©Ì¾¤Î°ì = _ÅÔÆ»Éܸ©Ì¾¤ÎÆó), \+(table2(_ÅÔÆ»Éܸ©Ì¾¤ÎÆó,_,_)). ¿·¤·¤¤ÅÔÆ»Éܸ©Ì¾¤ÎÀ¸À®(_³¤¤ËÀܤ·¤Æ¤¤¤Ê¤¤ÅÔÆ»Éܸ©Ì¾¤Ê¤é¤Ó,_ÅÔÆ»Éܸ©Ì¾¤Î°ì,_ÅÔÆ»Éܸ©Ì¾¤ÎÆó) :- ¿·¤·¤¤ÅÔÆ»Éܸ©Ì¾¤ÎÀ¸À®(_³¤¤ËÀܤ·¤Æ¤¤¤Ê¤¤ÅÔÆ»Éܸ©Ì¾¤Ê¤é¤Ó,_ÅÔÆ»Éܸ©Ì¾¤Î°ì,_ÅÔÆ»Éܸ©Ì¾¤ÎÆó). # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/584 # # MySQL 5.5.19 . Ť¯¤Ê¤ê¤Þ¤¹¤Î¤Ç # ¥Æ¡¼¥Ö¥ë¤ÎÄêµÁ¡¦ÆâÍÆ¤ÈÍߤ·¤¤·ë²Ì¤Ï¤³¤³¤Ë # http://ime.nu/codepad.org/oe1jhVrF # # ¤Ç¡¢ # # create table a_tbl( # code int(9) not null, # input_date date not null, # data1 double(9,2) unsigned default 0 not null, # data2 double(9,2) unsigned default 0 not null, # primary key(code,input_date) # ) ; # # insert into a_tbl # values # (1111,'2012-02-01',10,12), # (1111,'2012-02-02',133,14), # (1111,'2012-02-04',13,15), # (1111,'2012-02-06',13,10); # # create table b_tbl( # code varchar(10) not null, # input_date date not null, # data1 double(9,2) unsigned default 0 not null, # data2 double(9,2) unsigned default 0 not null, # primary key(code,input_date) # ) ; # # insert into b_tbl # values # ('ddd','2012-02-01',122,13), # ('ddd','2012-02-03',127,18), # ('ddd','2012-02-04',11,14), # ('ddd','2012-02-05',16,95), # ('ddd','2012-02-06',13,10); # # Íߤ·¤¤·ë²Ì # input_date a.data1 a.data2 b.data2 # 2012-02-01 10 12 13 # 2012-02-02 133 14 null # 2012-02-03 null null 18 # 2012-02-04 13 15 14 # 2012-02-05 null null 95 # 2012-02-06 13 10 10 # # # select a.input_date,b.input_date,a.data1,a.data2,b.data2 # from a_tbl a # right join b_tbl b # on a.input_date = b.input_date; ¤È¤¹¤ë¤È¡¢·ë²Ì¤¬ # +------------+------------+-------+-------+-------+ # | input_date | input_date | data1 | data2 | data2 | # +------------+------------+-------+-------+-------+ # | 2012-02-01 | 2012-02-01 | 10 | 12 | 13 | # | NULL | 2012-02-03 | NULL | NULL | 18 | # | 2012-02-04 | 2012-02-04 | 13 | 15 | 14 | # | NULL | 2012-02-05 | NULL | NULL | 95 | # | 2012-02-06 | 2012-02-06 | 13 | 10 | 10 | # +------------+------------+-------+-------+-------+ # ¤Ê¤ó¤Ç¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï¤¤¤í¤ó¤Ê¥³¡¼¥É¤¬Æþ¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¥³¡¼¥É¤âÃê½Ð¾ò·ï¤ËÆþ¤ì¤¿¤é # select a.input_date,b.input_date,a.data1,a.data2,b.data2 # from a_tbl a # right join b_tbl b # on a.input_date = b.input_date # where # a.code=1111 and b.code='ddd'; # +------------+------------+-------+-------+-------+ # | input_date | input_date | data1 | data2 | data2 | # +------------+------------+-------+-------+-------+ # | 2012-02-01 | 2012-02-01 | 10 | 12 | 13 | # | 2012-02-04 | 2012-02-04 | 13 | 15 | 14 | # | 2012-02-06 | 2012-02-06 | 13 | 10 | 10 | # +------------+------------+-------+-------+-------+ # ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£ # ¥³¡¼¥É¤òÃê½Ð¾ò·ï¤ËÆþ¤ì¤¿¾õÂÖ¤Ç˾¤Þ¤·¤¤·ë²Ì¤Þ¤¿¤Ï¾å¤ÎÊý¤Î·ë²Ì¤Ë¤Ê¤ë¤è¤¦¤ÊSQL¤ò¶µ¤¨¤Æ²¼¤µ¤¤¡£ # 'input_date¤Î½¸¹ç¤òÆÀ¤ë'(_input_date¤Î½¸¹ç) :- findall(_input_date,a_tbl(_input_date,_,_),L1), findall(_input_date,b_tbl(_input_date,_,_),L2), append(L1,L2,L3), setof(_input_date,member(_input_date,L3),_input_date¤Î½¸¹ç). Ãê½Ð(_input_date,_tbl_a¤Îdata1¤Ê¤é¤Ó,_tbl_a¤Îdata2¤Ê¤é¤Ó,_tbl_b¤Îdata2¤Ê¤é¤Ó) :- 'input_date¤Î½¸¹ç¤òÆÀ¤ë'(_input_date¤Î½¸¹ç), member(_input_date,_input_date¤Î½¸¹ç), findall([_data1],tbl_a(_,_input_date,_data1,_),_tbl_a¤Îdata1¤Ê¤é¤Ó), findall([_data2],tbl_a(_,_input_date,_,_data2),_tbl_a¤Îdata2¤Ê¤é¤Ó), findall([_data2],tbl_b(_,_input_date,_,_data2),_tbl_b¤Îdata2¤Ê¤é¤Ó). # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/633 # # MySQL 5.1¤Ç¤¹¡£ # # create table staff_list( # staff_id int(5) primary key //¼Ò°÷ÈÖ¹æ # staff_name varchar(8) //¼Ò°÷̾ # unit varchar(8) primary key //Éô½ð̾ # ) # # insert into staff_list (staff_id,staff_name,unit) values # (1,'ÈÏÇÏ','Áí̳'), # (2,'¶òÃÏ','Áí̳'), # (3,'²Ö»³','Áí̳'), # (1,'¹âÄÅ','´ë²è'), # (2,'ÃÓë','´ë²è'), # (3,'ĹÅè','´ë²è'), # (1,'È·»³','±Ä¶È'), # (2,'ÌîÅÄ','±Ä¶È'), # (3,'¾®Âô','±Ä¶È'), # (4,'»ÞÌî','±Ä¶È') # # # # ¤³¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤ËÂФ·¤ÆSELECT¤ò¤«¤±¤ëºÝ¡¢°ìÅ٤Υ¯¥¨¥ê¡¼¤Ç # Éô½ðÊ̤˥½¡¼¥È¤·¤¿¤¦¤¨¤Ç¡¢Áí̳¤À¤±staff_id¹ß½ç¤Ç¾¤ò¾º½ç¤Ç½Ð¤·¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£ # # order by unit,IF(staff_name='Áí̳',staff_id desc,staff_id asc) # ¤Ê¤É¤È»î¹Ô¤·¤Æ¤ß¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¤¦¤Þ¤¯¤Ç¤­¤Þ¤»¤ó¡£ # # ¤É¤Ê¤¿¤«¤¦¤Þ¤¤ÊýË¡¤ò¤´Â¸¤¸¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£ # # ¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£ # ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(1,ÈÏÇÏ,Áí̳). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(2,¶òÃÏ,Áí̳). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(3,²Ö»³,Áí̳). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(1,¹âÄÅ,´ë²è). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(2,ÃÓë,´ë²è). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(3,ĹÅè,´ë²è). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(1,È·»³,±Ä¶È). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(2,ÌîÅÄ,±Ä¶È). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(3,¾®Âô,±Ä¶È). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(4,»ÞÌî,±Ä¶È). '¤³¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤òÁªÂò¤¹¤ëºÝ¡¢°ìÅÙÉô½ðÊ̤˥½¡¼¥È¤·¤¿¤¦¤¨¤Ç¡¢Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç½Ð¤·¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£'(_Éô½ð̾,_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾) :- °ìÅÙÉô½ðÊ̤˥½¡¼¥È¤·¤¿¤¦¤¨¤Ç(_Éô½ð̾¤Ê¤é¤Ó), Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç½Ð¤·¤¿¤¤(_Éô½ð̾¤Ê¤é¤Ó,_Éô½ð̾,_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾). °ìÅÙÉô½ðÊ̤˥½¡¼¥È¤·¤¿¤¦¤¨¤Ç(_Éô½ð̾¤Ê¤é¤Ó) :- findsetof(_Éô½ð̾,( ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾,_Éô½ð̾)), _Éô½ð̾¤Ê¤é¤Ó). Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç½Ð¤·¤¿¤¤(_Éô½ð̾¤Ê¤é¤Ó,_Éô½ð̾,_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾) :- member(_Éô½ð̾,_Éô½ð̾¤Ê¤é¤Ó), Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç½Ð¤·¤¿¤¤(_Éô½ð̾,_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾). Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç½Ð¤·¤¿¤¤(Áí̳,_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾) :- Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç(_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾). Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç½Ð¤·¤¿¤¤(_Éô½ð̾,_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾) :- \+(_Éô½ð̾ == Áí̳), ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾,_Éô½ð̾). Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç(_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾) :- findall([_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾],( ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾,Áí̳)), L1), ¹ß½ç¤Ç¥½¡¼¥È(L1,L2), member([¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾],L2). ¹ß½ç¤Ç¥½¡¼¥È(L1,L2) :- sort(L1,L3), reverse(L3,L2). % % findsetof/3 % # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/666 # # SQLite3¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ # # ¥«¥é¥à¤¬¤Ê¤«¤Ã¤¿¤éinsert # ¤¢¤Ã¤¿¤éupdate¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢ # ¤É¤¦¤¤¤¦SQL¤ò¤«¤±¤Ð¤¤¤¤¤Î¤Ç¤·¤ç¤¦¤«¡© # # insert into t1(c1, c2) values("hoge",10) # update t1 set c2=10 WHERE c1="hoge" # ¤³¤Î¤È¤­c1¤Ïunique¤Ç¤¹¡£ # # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # '¥«¥é¥à¤¬¤Ê¤«¤Ã¤¿¤éinsert ¤¢¤Ã¤¿¤éupdate¤·¤¿¤¤'(_¥Æ¡¼¥Ö¥ë,_¥«¥é¥à¤Ê¤é¤Ó,_¸°¥«¥é¥à,_¸°ÃÍ) :- findall(_¥«¥é¥à,( ¥Æ¡¼¥Ö¥ëÄêµÁ(_¥Æ¡¼¥Ö¥ë,_ÈÖÌÜ,_¥«¥é¥à)), L1), ¸°Ãͤò¥»¥Ã¥È¤¹¤ë(_¥Æ¡¼¥Ö¥ë,_¸°¥«¥é¥à,_¸°ÃÍ,P), '¥«¥é¥à¤¬¤Ê¤«¤Ã¤¿¤éinsert ¤¢¤Ã¤¿¤éupdate¤·¤¿¤¤'(P,_¥Æ¡¼¥Ö¥ë,_¥«¥é¥à¤Ê¤é¤Ó). ¸°Ãͤò¥»¥Ã¥È¤¹¤ë(_¥Æ¡¼¥Ö¥ë,L1,_¸°¥«¥é¥à,_¸°ÃÍ,P) :- length(L1,Len), length(L2,Len), nth1(Nth,L1,_¸°¥«¥é¥à), nth1(Nth,L2,_¸°ÃÍ), P =.. [_¥Æ¡¼¥Ö¥ë|L2]. '¥«¥é¥à¤¬¤Ê¤«¤Ã¤¿¤éinsert ¤¢¤Ã¤¿¤éupdate¤·¤¿¤¤'(P,_¥Æ¡¼¥Ö¥ë,_¥«¥é¥à¤Ê¤é¤Ó) :- call(P),!, ( retract(P), Q =.. [_¥Æ¡¼¥Ö¥ë|_¥«¥é¥à¤Ê¤é¤Ó], asserta(Q), fail; true). '¥«¥é¥à¤¬¤Ê¤«¤Ã¤¿¤éinsert ¤¢¤Ã¤¿¤éupdate¤·¤¿¤¤'(_,_¥Æ¡¼¥Ö¥ë,_¥«¥é¥à¤Ê¤é¤Ó) :- Q =.. [_¥Æ¡¼¥Ö¥ë|_¥«¥é¥à¤Ê¤é¤Ó], asserta(Q). # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1343899481/684 # # ¡¦DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó # Oracle 10g # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¤¿ # create table aaa ( # id number(5,0) primary key, -- ¼ç¥­¡¼ # nendo char(4), -- ǯÅÙ # tsuki char(2) -- ·î # ); # insert into aaa values (1, '2012', '01'); # insert into aaa values (2, '2012', '02'); # insert into aaa values (3, '2012', '03'); # insert into aaa values (4, '2012', '04'); # insert into aaa values (5, '2012', '05'); # ¡¦Íߤ·¤¤·ë²Ì # id, nendo, tsuki # -------------------- # 4, '2012', '04' # 5, '2012', '05, # 1, '2012', '01' # 2, '2012', '02' # 3, '2012', '03' # # ¡¦ÀâÌÀ # ǯÅÙ/·î¤Î¾º½ç¤Ëʤ٤¿¤¤¤Ç¤¹¡£ # 2012ǯÅÙ3·î¤Ï2013ǯ3·î¡¢2012ǯÅÙ4·î¤Ï2012ǯ4·î¤È¤Ê¤ë¤Î¤Ç¤¿¤À¤ÎÂç¾®Èæ³Ó¤Ç¤Ï̵Íý¤Ç¤·¤¿¡£ # '¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ create table aaa ( id number(5,0) primary key, -- ¼ç¥­¡¼ nendo char(4), -- ǯÅÙ tsuki char(2) -- ·î ); insert into aaa values (1, '2012', '01'); insert into aaa values (2, '2012', '02'); insert into aaa values (3, '2012', '03'); insert into aaa values (4, '2012', '04'); insert into aaa values (5, '2012', '05'); ¡¦Íߤ·¤¤·ë²Ì id, nendo, tsuki -------------------- 4, '2012', '04' 5, '2012', '05, 1, '2012', '01' 2, '2012', '02' 3, '2012', '03' ¡¦ÀâÌÀ ǯÅÙ/·î¤Î¾º½ç¤Ëʤ٤¿¤¤¤Ç¤¹¡£ 2012ǯÅÙ3·î¤Ï2013ǯ3·î¡¢2012ǯÅÙ4·î¤Ï2012ǯ4·î¤È¤Ê¤ë¤Î¤Ç¤¿¤À¤ÎÂç¾®Èæ³Ó¤Ç¤Ï̵Íý¤Ç¤·¤¿¡£'(_id,_ǯÅÙ,_·î) :- Íߤ·¤¤·ë²Ì(_id,_ǯÅÙ,_·î). ǯÅ٤ξì¹ç¤Î·î½ç('04','05'). ǯÅ٤ξì¹ç¤Î·î½ç('05','06'). ǯÅ٤ξì¹ç¤Î·î½ç('06','07'). ǯÅ٤ξì¹ç¤Î·î½ç('07','08'). ǯÅ٤ξì¹ç¤Î·î½ç('08','09'). ǯÅ٤ξì¹ç¤Î·î½ç('09','10'). ǯÅ٤ξì¹ç¤Î·î½ç('10','11'). ǯÅ٤ξì¹ç¤Î·î½ç('11','12'). ǯÅ٤ξì¹ç¤Î·î½ç('12','01'). ǯÅ٤ξì¹ç¤Î·î½ç('01','02'). ǯÅ٤ξì¹ç¤Î·î½ç('02','03'). ǯÅ٤ξì¹ç¤Î·î½ç('03','04'). Íߤ·¤¤·ë²Ì(_id,_ǯÅÙ,_·î) :- findsetof(_ǯÅÙ,aaa(_,_ǯÅÙ,_),_ǯÅ٤ʤé¤Ó), member(_ǯÅÙ,_ǯÅ٤ʤé¤Ó), ǯÅÙ½ç¤Ëʤ٤ë('04',_id,_ǯÅÙ,_·î). ǯÅÙ½ç¤Ëʤ٤ë(_·î,_id,_ǯÅÙ,_·î) :- aaa(_id,_ǯÅÙ,_·î). ǯÅÙ½ç¤Ëʤ٤ë(_·î_1,_id,_ǯÅÙ,_·î) :- \+(_·î_1 = '03'), ǯÅ٤ξì¹ç¤Î·î½ç(_·î,_¼¡¤Î·î), ǯÅÙ½ç¤Ëʤ٤ë(_¼¡¤Î·î,_id,_ǯÅÙ,_·î). # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1343899481/684 # # ¡¦DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó # Oracle 10g # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¤¿ # create table aaa ( # id number(5,0) primary key, -- ¼ç¥­¡¼ # nendo char(4), -- ǯÅÙ # tsuki char(2) -- ·î # ); # insert into aaa values (1, '2012', '01'); # insert into aaa values (2, '2012', '02'); # insert into aaa values (3, '2012', '03'); # insert into aaa values (4, '2012', '04'); # insert into aaa values (5, '2012', '05'); # ¡¦Íߤ·¤¤·ë²Ì # id, nendo, tsuki # -------------------- # 4, '2012', '04' # 5, '2012', '05, # 1, '2012', '01' # 2, '2012', '02' # 3, '2012', '03' # # ¡¦ÀâÌÀ # ǯÅÙ/·î¤Î¾º½ç¤Ëʤ٤¿¤¤¤Ç¤¹¡£ # 2012ǯÅÙ3·î¤Ï2013ǯ3·î¡¢2012ǯÅÙ4·î¤Ï2012ǯ4·î¤È¤Ê¤ë¤Î¤Ç¤¿¤À¤ÎÂç¾®Èæ³Ó¤Ç¤Ï̵Íý¤Ç¤·¤¿¡£ # '¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ create table aaa ( id number(5,0) primary key, -- ¼ç¥­¡¼ nendo char(4), -- ǯÅÙ tsuki char(2) -- ·î ); insert into aaa values (1, '2012', '01'); insert into aaa values (2, '2012', '02'); insert into aaa values (3, '2012', '03'); insert into aaa values (4, '2012', '04'); insert into aaa values (5, '2012', '05'); ¡¦Íߤ·¤¤·ë²Ì id, nendo, tsuki -------------------- 4, '2012', '04' 5, '2012', '05, 1, '2012', '01' 2, '2012', '02' 3, '2012', '03' ¡¦ÀâÌÀ ǯÅÙ/·î¤Î¾º½ç¤Ëʤ٤¿¤¤¤Ç¤¹¡£ 2012ǯÅÙ3·î¤Ï2013ǯ3·î¡¢2012ǯÅÙ4·î¤Ï2012ǯ4·î¤È¤Ê¤ë¤Î¤Ç¤¿¤À¤ÎÂç¾®Èæ³Ó¤Ç¤Ï̵Íý¤Ç¤·¤¿¡£'(_id,_ǯÅÙ,_·î) :- Íߤ·¤¤·ë²Ì(_id,_ǯÅÙ,_·î). Íߤ·¤¤·ë²Ì(_id,_ǯÅÙ,_·î) :- findsetof(_ǯÅÙ,aaa(_,_ǯÅÙ,_),_ǯÅ٤ʤé¤Ó), member(_ǯÅÙ,_ǯÅ٤ʤé¤Ó), ǯÅÙ½ç¤Ëʤ٤ë(['04','05','06','07','08','09','10','11','12','01','02','03'],_id,_ǯÅÙ,_·î). ǯÅÙ½ç¤Ëʤ٤ë([_·î|R],_id,_ǯÅÙ,_·î) :- aaa(_id,_ǯÅÙ,_·î). ǯÅÙ½ç¤Ëʤ٤ë([_|R],_id,_ǯÅÙ,_·î) :- ǯÅÙ½ç¤Ëʤ٤ë(R,_id,_ǯÅÙ,_·î). # ¼ÁÌä¤Ç¤¹¡£ # MySQL5¤Ç¤¹¡£ # ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿¤ÏDATE¡ÊYYYYMM¤Î6¤±¤¿¤Îint·¿)¡¤CODE(varchar·¿)¡¤VALUE(varchar·¿) ¤Î3¥«¥é¥à¤«¤é¤Ê¤ê¤Þ¤¹¡£ # ³ÆÆüÉÕ½ç¤Î¹ß½ç¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢¥¹¥ì¥Ã¥É¤Î¤è¤¦¤Ë¡¢Æ±¤¸¥³¡¼¥É¤Î¾ì¹ç¡¢¤½¤Î²¼¤ËÆüÉÕ½ç¤Ç¥½¡¼¥È¤·¤¿¤¤¤Ç¤¹¡£ # ¸À¤Ã¤Æ¤¤¤ë¤³¤È¤¬¡¢¤è¤¯¤ï¤«¤é¤Ê¤¯¤Æ¤¹¤ß¤Þ¤»¤ó¡£ # # ¸µ¥Æ¡¼¥Ö¥ë # DATE, CODE, VALUE # .... # 20140401, 11, A # 20140402, 12, B # 20140403, 11, C # 20140404, 13, D # 20140405, 12, E # 20140406, 11, F # .... # # Íߤ·¤¤·ë²Ì # 20140401, 11, A # 20140403, 11, C # 20140406, 11, F # 20140402, 12, B # 20140405, 12, E # 20140404, 13, D # # µ¹¤·¤¯¤ª´ê¤¤Ãפ·¤Þ¤¹¡£ # # # 879 ̾Á°¡§NAME IS NULL [sage]¡§ 2014/04/25(¶â) 17:41:21.67 ID:??? # >>877 # ¤É¤¦¤â¼ÁÌ䤬ÌÀ³Î¤¸¤ã¤Ê¤¤¤±¤É¡¢ # insert into tname select ¡Á # ¤Î·Á¼°¤Ë¤¹¤ì¤Ð¤È¤ê¤¢¤¨¤º²ò·è¤·¤½¤¦¤ÊÏä˸«¤¨¤ë¡£ # # >>878 # order by code, date ¤È¤¤¤¦¤³¤È¡© # # # 880 ̾Á°¡§NAME IS NULL []¡§ 2014/04/25(¶â) 17:47:38.30 ID:+Fb19Efw (3) # 879 # ʬ¤«¤ê¤º¤é¤¤ # Íߤ·¤¤·ë²Ì¤Ë¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£ # # Âè1¥­¡¼¤Ï¡¢ÆüÉդǤ¹¡£ # # ¸µ¥Æ¡¼¥Ö¥ë # DATE, CODE, VALUE # 20140401, 13, A # 20140402, 11, B # 20140403, 12, C # 20140404, 13, D # 20140405, 12, E # 20140406, 11, F # # Íߤ·¤¤·ë²Ì # 20140401, 13, A # 20140404, 13, D # 20140402, 11, B # 20140406, 11, F # 20140403, 12, C # 20140405, 12, E # # µ¹¤·¤¯¤ª´ê¤¤Ãפ·¤Þ¤¹¡£ # # # Íפ¹¤ë¤ËÂè°ì¥­¡¼¤Ï¹ß½ç¡¢ÂèÆó¥­¡¼¤Ï¾º½ç¤ÇÀ°Î󤹤롣 # '¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿¤ÏDATE¡ÊYYYYMM¤Î6¤±¤¿¤Îint·¿)¡¤CODE(varchar·¿)¡¤VALUE(varchar·¿) ¤Î3¥«¥é¥à¤«¤é¤Ê¤ê¤Þ¤¹¡£³ÆÆüÉÕ½ç¤Î¹ß½ç¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢¥¹¥ì¥Ã¥É¤Î¤è¤¦¤Ë¡¢Æ±¤¸¥³¡¼¥É¤Î¾ì¹ç¡¢¤½¤Î²¼¤ËÆüÉÕ½ç¤Ç¥½¡¼¥È¤·¤¿¤¤¤Ç¤¹¡£'(_DATE,_CODE,_VALUE) :- 'Íפ¹¤ë¤ËÂè°ì¥­¡¼¤Ï¹ß½ç¡¢ÂèÆó¥­¡¼¤Ï¾º½ç¤ÇÀ°Î󤹤롣'(_DATE,_CODE,_VALUE). 'Íפ¹¤ë¤ËÂè°ì¥­¡¼¤Ï¹ß½ç¡¢ÂèÆó¥­¡¼¤Ï¾º½ç¤ÇÀ°Î󤹤롣'(_DATE,_CODE,_VALUE) :- Âè°ì¥­¡¼½ç½ø(_CODE), ÂèÆó¥­¡¼½ç½ø(_CODE,_DATE), ¸µ¥Æ¡¼¥Ö¥ë(_DATE,_CODE,_VALUE). Âè°ì¥­¡¼½ç½ø(_CODE) :- findsetof(_CODE,( ¸µ¥Æ¡¼¥Ö¥ë(_DATE,_CODE,_VALUE)), L1), reverse(L1,L2), member(_CODE,L2). ÂèÆó¥­¡¼½ç½ø(_CODE,_DATE) :- findsetof(_DATE,( ¸µ¥Æ¡¼¥Ö¥ë(_DATE,_CODE,_VALUE)), L1), member(_DATE,L1). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1343899481/598 # # mysql 5.5 # # ¥Æ¡¼¥Ö¥ë master # tcode # tname # lastdate # ¡Á # # daily_data # select tcode,max(tdate) as maxdate # from daily_date # group by tcode; # # ¤³¤Îdaily_date¤«¤éÆÀ¤é¤ì¤ëmaxdate¤ò»È¤Ã¤Æ # master¤Îtcode¤ÎÂбþ¤¹¤ëlastdate¤ËÆþ¤ì¤¿¤¤¤Î¤Ç¤¹¤¬¡¢ # ¤É¤Î¤è¤¦¤Ëupdate¤ò½ñ¤±¤ÐÎɤ¤¤Î¤Ç¤·¤ç¤¦¤«¡© # 'daily_date¤«¤éÆÀ¤é¤ì¤ëmaxdate¤ò»È¤Ã¤Æmaster¤Îtcode¤ÎÂбþ¤¹¤ëlastdate¤ËÆþ¤ì¤¿¤¤' :- dail_date¥Æ¡¼¥Ö¥ë¤Î¹½Â¤(P1,_daily_date_tcode,_date), master¥Æ¡¼¥Ö¥ë¤Î¹½Â¤(P2,_master_tcode,_lastdate), findsetof(_tcode,P1,L1), ºÇÂçÆüÉÕ¤ËÊѹ¹¤¹¤ë(L1,P1,P2,_daily_date_tcode,_date,_master_tcode,_lastdate),!. daily_date¥Æ¡¼¥Ö¥ë¤Î¹½Â¤(P,_tcode,_date) :- count(¥Æ¡¼¥Ö¥ëÄêµÁ(daily_date,_,_),_¥¢¥ê¥Æ¥£), length(L,_¥¢¥ê¥Æ¥£), P =.. [daily_date|L], tcode¤Èdate¤ÎÎó°ÌÃÖ¤ò³ÎÄꤹ¤ë(L,_tcode,_date),!. tcode¤Èdate¤ÎÎó°ÌÃÖ¤ò³ÎÄꤹ¤ë(L,_tcode,_date),!. ¥Æ¡¼¥Ö¥ëÄêµÁ(daily_date,_nth1_tcode,tcode), ¥Æ¡¼¥Ö¥ëÄêµÁ(daily_date,_nth1_date,date), nth1(_nth1_tcode,L,_tcode), nth1(_nth1_date,L,_date),!. master¥Æ¡¼¥Ö¥ë¤Î¹½Â¤(P,_tcode,_date) :- count(¥Æ¡¼¥Ö¥ëÄêµÁ(master,_,_),_¥¢¥ê¥Æ¥£), length(L,_¥¢¥ê¥Æ¥£), P =.. [master|L], tcode¤Èlastdate¤ÎÎó°ÌÃÖ¤ò³ÎÄꤹ¤ë(L,_tcode,_lastdate),!. tcode¤Èlastdate¤ÎÎó°ÌÃÖ¤ò³ÎÄꤹ¤ë(L,_tcode,_date),!. ¥Æ¡¼¥Ö¥ëÄêµÁ(master,_nth1_tcode,tcode), ¥Æ¡¼¥Ö¥ëÄêµÁ(master,_nth1_lastdate,lastdate), nth1(_nth1_tcode,L,_tcode), nth1(_nth1_date,L,_lastdate),!. ºÇÂçÆüÉÕ¤ËÊѹ¹¤¹¤ë(L1,P1,P2,_daily_date_tcode,_date,_master_tcode,_lastdate) :- forall(( member(_tcode,L1), findmax(_date,P1,_maxdate), lastdate¤Î¹¹¿·(_maxdate,P2,_tcode,_lastdate)), true). lastdate¤Î¹¹¿·(_maxdate,P,_tcode,_lastdate) :- retract(P), _lastdate = _maxdate, asserta(P),!. lastdate¤Î¹¹¿·(_maxdate,P,_tcode,_lastdate) :- _lastdate = _maxdate, asserta(P),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/816 # # table1 # id | name # ----------- # 0 | ¤ê¤ó¤´ # 1 | ¤ß¤«¤ó # # table2 # no | id # ---------- # 0 | 0 # 1 | 0 # 2 | 1 # 3 | 1 # 4 | 1 # # ¤³¤ÎÆó¤Ä¤Î¥Æ¡¼¥Ö¥ë¤«¤é°Ê²¼¤Î·ë²Ì¤òÆÀ¤ëSQL¤Î½ñ¤­Êý¤ò¶µ¤¨¤Æ¤¯¤À¤µ¤¤ # id | name | num # ------------------- # 0 | ¤ê¤ó¤´ | 2 # 1 | ¤ß¤«¤ó | 3 # # select id, name, (select count(code) from table2 as t2, table1 as t1 where t1.id=t2.code) as num from table1; # ¼«Ê¬¤Ç¹Í¤¨¤¿¢¬¤Ç¤Ï2¹Ô¤È¤ânum¤¬5¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿ # # SELECT id, COUNT(id) # FROM table2 # GROUP BY id # # ¤Î·ë²Ì¤È table1 ¤ò·ë¹ç # table1(0,¤ê¤ó¤´). table1(1,¤ß¤«¤ó). table2(0,0). table2(1,0). table2(2,1). table2(3,1). table2(4,1). 'table2¤òid¤Ç½¸Ìó¤·¤¿¥Æ¡¼¥Ö¥ë¤Ëtable1¤ò·ë¹ç¤¹¤ë'(_id,_name,_ÅÙ¿ô) :- setof(_id,[_no,_id] ^ ( table2(_no,_id)),_id¤Ê¤é¤Ó), member(_id,_id¤Ê¤é¤Ó), count(table2(_,_id),_ÅÙ¿ô), table1(_id,_name). % findsetof/3 % count/2 % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/tech/1337692704/48 # # ¡Ú²ÝÂê¡ÛÇä¤ê¾å¤²¤ò¥³¡¼¥É»ö¤Ë¸ÄÊ̤˽¸·×¤·¤¿¸å¤ËÁ´ÂΤιç·×¤ò½Ð¤·¤Ê¤µ¤¤¡£ # ¡¡¡¡¡¡¡ã¥¨¥ê¥¢¥³¡¼¥É¡ä¡¡¡ã¸©¥³¡¼¥É¡ä¡¡¡ãÃ϶襳¡¼¥É¡ä # ¡¡¡¡¡¡¡¡A \5000 C¡¡\4000 E \7000 # A \90000 C \6500 E \8000 # A \7500 C \5500 E \4000 # A \6000 C \3000 F \2000 # A \3500 C \9000 F \6500 # A \4200 C \4500 F \3000 # A \3500 D \8000 E \3000 # A \40000 D \9500 E \4880 # B \3500 C \8000 E \4500 # B \4200 C \9500 E \5000 # # ¡Ú·ÁÂÖ¡Ûjava¥¢¥×¥ê¥±¡¼¥·¥ç¥ó # ¡Ú´ü¸Â¡Û6/12 ¤ªÃë # ¡ÚVer ¡Ûjava version "1.7.0_02" # ¡ÚÊä­¡Û¥­¡¼¥Ö¥ì¥¤¥¯¤Î½èÍý¤Î»²¹Í½ñ¤¬¤Ê¤¯¤Æ¿Ê¤ß¤Þ¤»¤ó¡£ # ACE¤«¤éÀÚ¤êÂØ¤ï¤ë¤È¤­¤Ë¡ãEÃ϶è¹ç·×¡ä # ACF¤«¤éÀÚ¤êÂØ¤ï¤ë¤È¤­¤Ë¡ãFÃ϶è¹ç·×¡ä¡ãC¸©¹ç·×¡ä # ADE¤«¤éÀÚ¤êÂØ¤ï¤ë¤È¤­¤Ë¡ãEÃ϶è¹ç·×¡ä¡ãD¸©¹ç·×¡ä¡ãA¥¨¥ê¥¢¹ç·×¡ä # BCE¤Î¸å¤Ë¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ãEÃ϶è¹ç·×¡ä¡ãC¸©¹ç·×¡ä¡ãB¥¨¥ê¥¢¹ç·×¡ä # ºÇ¸å¤Ë¡ãA+B¥¨¥ê¥¢¹ç·×¡ä¤ò½ÐÎϤ¹¤ë·Á¤Ç¤ª´ê¤¤¤·¤Þ¤¹¡£ # # Çä¤ê¾å¤²('A',5000,'C',4000,'E',7000). Çä¤ê¾å¤²('A',90000'C',6500','E',8000). Çä¤ê¾å¤²('A',7500,'C',5500,'E',4000). Çä¤ê¾å¤²('A',6000,'C',3000,'F',2000). Çä¤ê¾å¤²('A',3500,'C',9000,'F',6500). Çä¤ê¾å¤²('A',4200,'C',4500,'F',3000). Çä¤ê¾å¤²('A',3500,'D',8000,'E',3000), Çä¤ê¾å¤²('A',40000,'D',9500,'E',4880). Çä¤ê¾å¤²('B',3500,'C',8000,'E',4500). Çä¤ê¾å¤²('B',4200,'C',9500,'E',5000). '¥¨¥ê¥¢¥³¡¼¥É¸°'(_¸°¤Ê¤é¤Ó) :- findsetof(_¥¨¥ê¥¢¥³¡¼¥É,( Çä¤ê¾å¤²(_¥¨¥ê¥¢¥³¡¼¥É,_,_,_,_,_)), _¸°¤Ê¤é¤Ó). '¥¨¥ê¥¢¥³¡¼¥É¡¦¸©¥³¡¼¥É¸°'(_¸°¤Ê¤é¤Ó) :- findsetof([_¥¨¥ê¥¢¥³¡¼¥É,_¸©¥³¡¼¥É],( Çä¤ê¾å¤²(_¥¨¥ê¥¢¥³¡¼¥É,_,_¸©¥³¡¼¥É,_,_,_)), _¸°¤Ê¤é¤Ó). '¥¨¥ê¥¢¥³¡¼¥É¡¦¸©¥³¡¼¥É¡¦Ã϶襳¡¼¥É¸°'(_¸°¤Ê¤é¤Ó) :- findsetof([_¥¨¥ê¥¢¥³¡¼¥É,_¸©¥³¡¼¥É,_Ã϶襳¡¼¥É],( Çä¤ê¾å¤²(_¥¨¥ê¥¢¥³¡¼¥É,_,_¸©¥³¡¼¥É,_,_Ã϶襳¡¼¥É,_)), _¸°¤Ê¤é¤Ó). Çä¤ê¾å¤²¤òɽ¼¨¤¹¤ë :- '¥¨¥ê¥¢¥³¡¼¥É¸°'(_¸°¤Ê¤é¤Ó_1), '¥¨¥ê¥¢¥³¡¼¥É¡¦¸©¥³¡¼¥É¸°'(_¸°¤Ê¤é¤Ó_2), '¥¨¥ê¥¢¥³¡¼¥É¡¦¸©¥³¡¼¥É¡¦Ã϶襳¡¼¥É¸°'(_¸°¤Ê¤é¤Ó_3), Çä¤ê¾å¤²½¸Ìó¤òɽ¼¨¤¹¤ë(_¸°¤Ê¤é¤Ó_1,_¸°¤Ê¤é¤Ó_2,_¸°¤Ê¤é¤Ó_3). Çä¤ê¾å¤²½¸Ìó¤òɽ¼¨¤¹¤ë([],_¸°¤Ê¤é¤Ó_2,_¸°¤Ê¤é¤Ó_3) :- findsum(_¶â³Û_1,( Çä¤ê¾å¤²(_,_¶â³Û_1,_,_,_,_)), ¹ç·×¶â³Û), writef('Á´¥¨¥ê¥¢¹ç·× %t ±ß\n',[_¹ç·×¶â³Û]),!. Çä¤ê¾å¤²½¸Ìó¤òɽ¼¨¤¹¤ë([_¥¨¥ê¥¢¸°|R1],_¸°¤Ê¤é¤Ó_2,_¸°¤Ê¤é¤Ó_3) :- ¥¨¥ê¥¢¤ÇʬÎह¤ë(_¥¨¥ê¥¢¸°,_¸°¤Ê¤é¤Ó_2,_¸°¤Ê¤é¤Ó_3), Çä¤ê¾å¤²¤òɽ¼¨¤¹¤ë(R1,_¸°¤Ê¤é¤Ó_2,_¸°¤Ê¤é¤Ó_3). ¥¨¥ê¥¢¤ÇʬÎह¤ë(_¥¨¥ê¥¢¸°,[],_) :- findsum(_¶â³Û_1,( Çä¤ê¾å¤²(_¥¨¥ê¥¢¸°,_¶â³Û_1,_,_,_,_)), _¹ç·×¶â³Û), writef('%t¥¨¥ê¥¢¹ç·× %t ±ß\n',[_¥¨¥ê¥¢¸°,_¹ç·×¶â³Û]),!. ¥¨¥ê¥¢¤ÇʬÎह¤ë(_¥¨¥ê¥¢¸°,[[_¥¨¥ê¥¢¸°,_¸©¸°]|R2],_¸°¤Ê¤é¤Ó_3) :- ¸©¤ÇʬÎह¤ë(_¥¨¥ê¥¢¸°,_¸©¸°,_¸°¤Ê¤é¤Ó_3), ¥¨¥ê¥¢¤ÇʬÎह¤ë(_¥¨¥ê¥¢¸°,R2,_¸°¤Ê¤é¤Ó_3). ¸©¤ÇʬÎह¤ë(_¥¨¥ê¥¢¸°,_¸©¸°,[]) :- findsum(_¶â³Û_2,( Çä¤ê¾å¤²(_¥¨¥ê¥¢¸°,_1,_¸©¸°,_¶â³Û_2,_,_3)), _¹ç·×¶â³Û), writef('%t¸©¹ç·× %t ±ß\n',[_¸©¸°,_¹ç·×¶â³Û]),!. ¸©¤ÇʬÎह¤ë(_¥¨¥ê¥¢¸°,_¸©¸°,[[_¥¨¥ê¥¢¸°,_¸©¸°,_Ã϶踰]|R3]) :- findsum(_¶â³Û_3,( Çä¤ê¾å¤²(_¥¨¥ê¥¢¸°,_1,_¸©¸°,_2,_Ã϶踰,_¶â³Û_3)), _¹ç·×¶â³Û), writef(\n'%t%t¹ç·× %t ±ß ',[_Ã϶踰,Ã϶è,_¹ç·×¶â³Û]), ¸©¤ÇʬÎह¤ë(_¥¨¥ê¥¢¸°,_¸©¸°,R3). ¸©¤ÇʬÎह¤ë(_¥¨¥ê¥¢¸°,_¸©¸°,[_|R3]) :- ¸©¤ÇʬÎह¤ë(_¥¨¥ê¥¢¸°,_¸©¸°,R3). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # I have a database looks like; # # airport(ist, 90). # airport(saw, 45). # airport(esb, 60). # airport(adb, 60). # airport(erz, 30). # airport(ayt, 90). # airport(mlx, 30). # airport(tzx, 30). # # airplane(f1, ist, [esb,tzx,saw]). # airplane(f2, ist, [mlx,esb,erz,esb]). # airplane(f3, ist, [esb,ist,esb,ist]). # airplane(f4, saw, [ayt,saw,ayt,saw]). # airplane(f5, erz, [esb,erz,esb]). # airplane(f6, mlx, [ist,esb,tzx,saw]). # and I have a predicate called "testing" takes two lists as parameter. So, if you write testing([ist],X). you should get X=[esb,mlx]. I wrote this code. # # testing([],[]). # # testing([D|D1],[L|L1]) :- # airport(D,_), # airplane(_,D,[L|_]), # testing(D1,L1). # This works and the output is: # # [8] 60 ?- listConnections([ist],X). # X = [esb] ; # X = [mlx] ; # X = [esb]. # But this is not that I want. So the first problem is I need a single line answer like X=[esb,mlx]. The second problem is there shouldn't duplicate elements in the list. I hope my problem is clear. Any help would be greatly appreciated # airport(ist, 90). airport(saw, 45). airport(esb, 60). airport(adb, 60). airport(erz, 30). airport(ayt, 90). airport(mlx, 30). airport(tzx, 30). airplane(f1, ist, [esb,tzx,saw]). airplane(f2, ist, [mlx,esb,erz,esb]). airplane(f3, ist, [esb,ist,esb,ist]). airplane(f4, saw, [ayt,saw,ayt,saw]). airplane(f5, erz, [esb,erz,esb]). airplane(f6, mlx, [ist,esb,tzx,saw]). testing([],[]). testing([_airport|R1],[L|R2]) :- findsetof(_airport_1,( airport(_airport,_), airplane(_,_airport,[_airport_1|_])), L), testing(R1,R2). findsetof(A,B,L) :- findall(A,B,C), setof(A,member(A,C),L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/662 # # MySQL5 # # ³«»ÏÆü¡¢½ªÎ»Æü¤ò»ý¤Ã¤¿¥Æ¡¼¥Ö¥ë¤òÆüÉÕñ°Ì¤Ëɽ¼¨¤·¤¿¤¤¤Ç¤¹¡£ # tbl_job ¤Ï¡¢°Ê²¼¤Î¹½Â¤¤Ç¤¹¡£ # # id, name, start_date, end_date # --------------------------- # 1, JOB1, 2012-04-01, 2012-04-03 # 2, JOB2, 2012-04-02, 2012-04-04 # # ¾åµ­¥Æ¡¼¥Ö¥ë¤«¤é°Ê²¼¤Î¤è¤¦¤ËÆüÉÕñ°Ì¤ÇJOB¤òɽ¼¨¤¹¤ëSQL¤ò¶µ¤¨¤Æ¤Û¤·¤¤¤Ç¤¹¡£ # # date, id, name # -------------------- # 2012-04-01, 1, JOB1 # 2012-04-02, 1, JOB1 # 2012-04-02, 2, JOB2 # 2012-04-03, 1, JOB1 # 2012-04-03, 2, JOB2 # 2012-04-04, 2, JOB2 # # '³«»ÏÆü¡¢½ªÎ»Æü¤ò»ý¤Ã¤¿¥Æ¡¼¥Ö¥ë¤òÆüÉÕñ°Ì¤Ëɽ¼¨¤·¤¿¤¤' :- ÆüÉÕñ°Ìtbl_job¤ÎÀ¸À®(_ÆüÉÕñ°Ìtbl_job¤Ê¤é¤Ó), findsetof(_ÆüÉÕ,( member([_date,_,_],_ÆüÉÕñ°Ìtbl_job¤Ê¤é¤Ó)), _ÆüÉդʤé¤Ó), ÆüÉÕñ°Ì¤Ëɽ¼¨¤¹¤ë(_ÆüÉդʤé¤Ó,_ÆüÉÕñ°Ìtbl_job¤Ê¤é¤Ó). ÆüÉÕñ°Ìtbl_job¤ÎÀ¸À®(_ÆüÉÕñ°Ìtbl_job¤Ê¤é¤Ó) :- findall(_ÆüÉÕ,( tbl_job(_id,_name,_start_date,_end_date), ÆüÉÕ¤ÎÀ¸À®(_start_date,_end_date,_ÆüÉÕ)), _ÆüÉÕñ°Ìtbl_job¤Ê¤é¤Ó). ÆüÉÕ¤ÎÀ¸À®(_½ªÎ»Ç¯-_½ªÎ»·î-_½ªÎ»Æü,_½ªÎ»Ç¯-_½ªÎ»·î-_½ªÎ»Æü,_½ªÎ»Ç¯-_½ªÎ»·î-_½ªÎ»Æü) :- !. ÆüÉÕ¤ÎÀ¸À®(_³«»Ïǯ-_³«»Ï·î-_³«»ÏÆü,_½ªÎ»Ç¯-_½ªÎ»·î-_½ªÎ»Æü,_³«»Ïǯ-_³«»Ï·î-_³«»ÏÆü). ÆüÉÕ¤ÎÀ¸À®(_³«»Ïǯ-_³«»Ï·î-_³«»ÏÆü,_½ªÎ»Ç¯-_½ªÎ»·î-_½ªÎ»Æü,_ǯ-_·î-_Æü) :- ÍâÆü(_³«»Ïǯ,_³«»Ï·î,_³«»ÏÆü,_ÍâÆüǯ,_ÍâÆü·î,_ÍâÆüÆü), ÆüÉÕ¤ÎÀ¸À®(_ÍâÆüǯ-_ÍâÆü·î-_ÍâÆüÆü,_½ªÎ»Ç¯-_½ªÎ»·î-_½ªÎ»Æü,_ǯ-_·î-_Æü). ÍâÆü(_ǯ,12,31,_Íâǯ,1,1) :- !. ÍâÆü(_ǯ,_·î,30,_ǯ,_Íâ·î,1) :- member(_·î,[4,6,9,11]), _Íâ·î is _·î + 1,!. ÍâÆü(_ǯ,_·î,31,_ǯ,_Íâ·î,1) :- _Íâ·î is _·î + 1,!. ÍâÆü(_ǯ,2,29,_ǯ,3,1) :- !. ÍâÆü(_ǯ,2,28,_ǯ,3,1) :- \+(¤¦¤ë¤¦Ç¯(_ǯ)), ÍâÆü(_ǯ,_·î,_Æü,_ǯ,_·î,_ÍâÆü) :- _ÍâÆü is _Æü + 1. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100,!, fail. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- \+(0 is _ǯ mod 4), fail. ÆüÉÕñ°Ì¤Ëɽ¼¨¤¹¤ë(_ÆüÉդʤé¤Ó,_ÆüÉÕñ°Ìtbl_job¤Ê¤é¤Ó) :- member(_ÆüÉÕ,_ÆüÉդʤé¤Ó), member([_ÆüÉÕ,_id,_name],_ÆüÉÕñ°Ìtbl_job¤Ê¤é¤Ó), ÆüÉդηÁ¼°¤òÀ°¤¨¤Ê¤¬¤é°ì¹Ôɽ¼¨¤¹¤ë(_ÆüÉÕ,_id,_name), fail. ÆüÉÕñ°Ì¤Ëɽ¼¨¤¹¤ë(_ÆüÉդʤé¤Ó,_ÆüÉÕñ°Ìtbl_job¤Ê¤é¤Ó). ÆüÉդηÁ¼°¤òÀ°¤¨¤Ê¤¬¤é°ì¹Ôɽ¼¨¤¹¤ë(_ǯ-_·î-_Æü,_id,_name) :- swritef(S,'%2r-%2r-%2r',[_ǯ-_·î-_Æü]), ¶õÇò¤ò0¤ËÃÖ´¹¤·¤¿ÆüÉÕʸ»úÎó(S,_¶õÇò¤ò0¤ËÃÖ´¹¤·¤¿ÆüÉÕʸ»úÎó), writef('%t, %t, %t\n',[_¶õÇò¤ò0¤ËÃÖ´¹¤·¤¿ÆüÉÕʸ»úÎó,_id,_name). ¶õÇò¤ò0¤ËÃÖ´¹¤·¤¿ÆüÉÕʸ»úÎó(S,_¶õÇò¤ò0¤ËÃÖ´¹¤·¤¿ÆüÉÕʸ»úÎó) :- findall(_ʸ»ú_2,( sub_atom(S,_,1,_,_ʸ»ú), ¶õÇò¤ò0¤ËÃÖ´¹(_ʸ»ú,_ʸ»ú_2)), _¶õÇò¤ò0¤ËÃÖ´¹¤·¤¿ÆüÉÕʸ»úÎó). ¶õÇò¤ò0¤ËÃÖ´¹(' ','0') :- !. ¶õÇò¤ò0¤ËÃÖ´¹(A,A). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/649 # # SQL¤È¤¤¤¦¤è¤ê¥Æ¡¼¥Ö¥ëÀ߷פμÁÌä¤Ê¤ó¤Ç¤¹¤¬¤¤¤¤¤Ç¤·¤ç¤¦¤«¡© # # ¥æ¡¼¥¶¤´¤È¤ÎÆü¡¹ÊѲ½¤¹¤ë¥Ç¡¼¥¿¤ò1Æü1¥ì¥³¡¼¥É¤º¤ÄÊݸ¤¹¤ë¤¿¤á¤Ë # °Ê²¼¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¹½Â¤¤ò¹Í¤¨¤Þ¤·¤¿¡£ # # USERS¥Æ¡¼¥Ö¥ë # ¡¡user_no (¥æ¡¼¥¶ÈÖ¹æ PK) # ¡¡latest_gen_no (ºÇ¿·À¤ÂåÈÖ¹æ) # ¡¡»á̾¤½¤Î¾¤Î°À­ # # RECORDS¥Æ¡¼¥Ö¥ë # ¡¡user_no (¥æ¡¼¥¶ÈÖ¹æ PK*) # ¡¡gen_no (À¤ÂåÈÖ¹æ PK*) # ¡¡Æü¡¹ÊѲ½¤¹¤ëÃÍ # *user_no, gen_no ¤Î¥Ú¥¢¤ÇPK # # GENERATIONS¥Æ¡¼¥Ö¥ë # ¡¡gen_no (À¤ÂåÈÖ¹æ PK) # ¡¡date (Æü»þ) # # Á´¥æ¡¼¥¶¤ÎºÇ¿·À¤Âå¤ÎÃͤò¼èÆÀ¤¹¤ë¤Ù¤¯¡¢ # select ... from users u, records r # where u.user_no=r.user_no and u.latest_gen_no=r.gen_no; # ¤È¤¤¤¦SQL¤òȯ¹Ô¤¹¤ë¤È¡¢¤â¤Î¤¹¤´¤¯»þ´Ö¤¬³Ý¤«¤ê¤Þ¤¹¡£ # # PK¤ä¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎÀßÄê¤Î»ÅÊý¤ËÌäÂ꤬¤¢¤ë¤Î¤Ç¤·¤ç¤¦¤«¡© # ¤½¤â¤½¤â¥Æ¡¼¥Ö¥ë¤Î¹½À®¤¬¤Þ¤º¤¤¤Ç¤·¤ç¤¦¤«¡© # ¥Æ¡¼¥Ö¥ëÉûÌÜɸ(_¥Æ¡¼¥Ö¥ë̾,_°ú¿ô¤Ê¤é¤Ó,_°À­Ì¾¤Ê¤é¤Ó,_ÉûÌÜɸ) :- findall(_,¥Æ¡¼¥Ö¥ëÄêµÁ(_¥Æ¡¼¥Ö¥ë̾,_,_°À­Ì¾),_°ú¿ô¤Ê¤é¤Ó), findall(_°À­Ì¾,¥Æ¡¼¥Ö¥ëÄêµÁ(_¥Æ¡¼¥Ö¥ë̾,_,_°À­Ì¾),_°À­Ì¾¤Ê¤é¤Ó), _ÉûÌÜɸ =.. [_¥Æ¡¼¥Ö¥ë̾|_°ú¿ô¤Ê¤é¤Ó]. 'USERS¥Æ¡¼¥Ö¥ë¤òºÇ¿·À¤Âå¤Ë¹¹¿·¤¹¤ë' :- ¥æ¡¼¥¶¤´¤È¤Î¸½ºß¤ÎºÇ¿·À¤Âå¤òÆÀ¤ë(_¥æ¡¼¥¶¤´¤È¤ÎºÇ¿·À¤Âå¤Ê¤é¤Ó), 'USERS¥Æ¡¼¥Ö¥ë¤ò¹¹¿·¤¹¤ë'(_¥æ¡¼¥¶¤´¤È¤ÎºÇ¿·À¤Âå¤Ê¤é¤Ó). ¥æ¡¼¥¶¤´¤È¤Î¸½ºß¤ÎºÇ¿·À¤Âå¤òÆÀ¤ë(_¥æ¡¼¥¶¤´¤È¤ÎºÇ¿·À¤Âå¤Ê¤é¤Ó) :- '¥Æ¡¼¥Ö¥ëÉûÌÜɸ'('USERS',[_¥æ¡¼¥¶ÈÖ¹æ,_ºÇ¿·À¤ÂåÈÖ¹æ|_»á̾¤½¤Î¾¤Î°À­],_,_USERS), findsetof(_¥æ¡¼¥¶ÈÖ¹æ,( _USERS), _Âоݥ桼¥¶ÈÖ¹æ¤Ê¤é¤Ó), ¥æ¡¼¥¶¤´¤È¤Î¸½ºß¤ÎºÇ¿·À¤Âå¤òÆÀ¤ë(_Âоݥ桼¥¶ÈÖ¹æ¤Ê¤é¤Ó,_¥æ¡¼¥¶¤´¤È¤ÎºÇ¿·À¤Âå¤Ê¤é¤Ó). ¥æ¡¼¥¶¤´¤È¤Î¸½ºß¤ÎºÇ¿·À¤Âå¤òÆÀ¤ë([],[]). ¥æ¡¼¥¶¤´¤È¤Î¸½ºß¤ÎºÇ¿·À¤Âå¤òÆÀ¤ë([_¥æ¡¼¥¶ÈÖ¹æ|R1],[[_¥æ¡¼¥¶ÈÖ¹æ,_ºÇ¿·À¤ÂåÈÖ¹æ]|R2]) :- ¥Æ¡¼¥Ö¥ëÉûÌÜɸ('RECORDS',[_¥æ¡¼¥¶ÈÖ¹æ,_À¤ÂåÈÖ¹æ|_],_,_RECORDS), findmax([_Æü»þ,_À¤ÂåÈÖ¹æ],( _RECORDS, 'GENERATIONS'(_À¤ÂåÈÖ¹æ,_Æü»þ)), [_,_ºÇ¿·À¤ÂåÈÖ¹æ]), ¥æ¡¼¥¶¤´¤È¤Î¸½ºß¤ÎºÇ¿·À¤Âå¤òÆÀ¤ë(R1,R2). 'USERS¥Æ¡¼¥Ö¥ë¤ò¹¹¿·¤¹¤ë'([]). 'USERS¥Æ¡¼¥Ö¥ë¤ò¹¹¿·¤¹¤ë'([[_¥æ¡¼¥¶ÈÖ¹æ,_ºÇ¿·À¤ÂåÈÖ¹æ]|R]) :- ¥Æ¡¼¥Ö¥ëÉûÌÜɸ('USERS',[_¥æ¡¼¥¶ÈÖ¹æ,_|_»á̾¤½¤Î¾¤Î°À­],_,_USERS_1), ¥Æ¡¼¥Ö¥ëÉûÌÜɸ('USERS',[_¥æ¡¼¥¶ÈÖ¹æ,_ºÇ¿·À¤ÂåÈÖ¹æ|_»á̾¤½¤Î¾¤Î°À­],_,_USERS_2), retract(_USERS_1), assertz(_USERS_2), 'USERS¥Æ¡¼¥Ö¥ë¤ò¹¹¿·¤¹¤ë'(R),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # Çä¾å('20120416',¥È¥Þ¥È,3000). # Çä¾å('20120417',¥Ê¥¹,1000). # Çä¾å('20120416',¥È¥Þ¥È,1500). # Çä¾å('20120417',¥Ê¥¹,2200). # # ¤Î»þ¤Ë¡¢ÆüÉÕ¤´¤È¤Î¹ç·×Çä¾å¤¬Íߤ·¤¤¡£ # # ?- ½¸Ìó²Ã»»(_½¸ÌóÃÍ,[_ÆüÉÕ,_½¸ÌóÃÍ],[_ÆüÉÕ],[_¶â³Û],Çä¾å(_ÆüÉÕ,_ÉÊÌÜ,_¶â³Û),_²ò). # # _²ò = [['20120416',4500],['20120417',3200]] # ½¸Ìó²Ã»»(_½¸Ìó²òÊÑ¿ô»ØÄê,_ÁªÂò¹à,_¸°¹à,_½¸Ìó¹à,P,_²ò) :- findsetof(_¸°¹à,P,L1), findkeysort(_ÁªÂò¹à,_¸°¹à,( member(_¸°¹à,L1), findsum(_½¸Ìó¹à,P,_½¸Ìó²òÊÑ¿ô»ØÄê)), _²ò_1), ½¸Ìó²Ã»»¤Î²ò¤òʿ󲽤¹¤ë(_²ò_1,_²ò). ½¸Ìó²Ã»»¤Î²ò¤òʿ󲽤¹¤ë(_²ò_1,_²ò) :- findall(L3,( member(L2,_²ò_1), ʿó²½(L2,L3)), _²ò) . %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% findsetof(A,B,L) :- findall(A,B,C), setof(A,member(A,C),L). findkeysort(Select,Keys,P,List) :- append(Keys,Select,Keys2), findall(Keys2,P,List1), sort(List1,List2), findall(Select,member(Keys2,List2),List). ʿó²½(_¿¼¤¤¤Ê¤é¤Ó,_ʿ󲽤µ¤ì¤¿¤Ê¤é¤Ó) :- º¹Ê¬¤Ê¤é¤Ó¤Ë¤è¤ëʿó²½(_¿¼¤¤¤Ê¤é¤Ó,_ʿ󲽤µ¤ì¤¿¤Ê¤é¤Ó - []) . º¹Ê¬¤Ê¤é¤Ó¤Ë¤è¤ëʿó²½([_¹à|_»Ä¤ê¤Ê¤é¤Ó],_º¹Ê¬¤Ê¤é¤ÓƬÉô - _º¹Ê¬¤Ê¤é¤ÓÈøÉô) :- º¹Ê¬¤Ê¤é¤Ó¤Ë¤è¤ëʿó²½(_¹à,_º¹Ê¬¤Ê¤é¤ÓƬÉô - _ÉÔ´°Á´¤Êº¹Ê¬¤Ê¤é¤Ó), º¹Ê¬¤Ê¤é¤Ó¤Ë¤è¤ëʿó²½(_»Ä¤ê¤Ê¤é¤Ó,_ÉÔ´°Á´¤Êº¹Ê¬¤Ê¤é¤Ó - _º¹Ê¬¤Ê¤é¤ÓÈøÉô) . º¹Ê¬¤Ê¤é¤Ó¤Ë¤è¤ëʿó²½([],_º¹Ê¬¤Ê¤é¤ÓƬÉô - _º¹Ê¬¤Ê¤é¤ÓÈøÉô) :- _º¹Ê¬¤Ê¤é¤ÓƬÉô = _º¹Ê¬¤Ê¤é¤ÓÈøÉô . º¹Ê¬¤Ê¤é¤Ó¤Ë¤è¤ëʿó²½(_¹à,[_¹à|_º¹Ê¬¤Ê¤é¤ÓÈøÉô] - _º¹Ê¬¤Ê¤é¤ÓÈøÉô) :- \+(list(_¹à)),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/647 # # ¡ô¥¤¥ó¥Ç¥ó¥È¤¬Êø¤ì¤ë¾ì¹ç¤Ï http://ime.nu/pastebin.com/26BkXDHs ¤ò¤ß¤Æ¤¯¤À¤µ¤¤¡£ # # -- # -- ¾¦Éʥơ¼¥Ö¥ë¤È¡¢ # -- # create table items ( # id serial primary key, # name varchar(255) not null, # price integer not null -- ñ²Á # ); # # -- # -- ÈÎÇ䥯¡¼¥Ö¥ë¤¬¤¢¤ë¤È¤¹¤ë¡£ # -- # create table sales ( # id serial primary key, # item_id integer not null references items(id), # count integer not null default 1, -- ¸Ä¿ô # total integer not null, -- ñ²Á * ¸Ä¿ô # created_at timestamp not null default current_datetime # ) # # -- # -- ÆüÉÕ¤ò»ØÄꤷ¤Æ¡¢¤½¤ÎÆü¤Î¾¦ÉÊÊÌÈÎÇä¶â³Û¹ç·×¤òÂ礭¤¤½ç¤Ëɽ¼¨¤·¤¿¤¤¡£ # -- ¤É¤¦¤¤¤¦SQL¤ò½ñ¤±¤Ð¤¤¤¤¤Î? # -- ¤³¤ó¤Ê¤«¤ó¤¸¤Ç½ñ¤±¤¿¤é¤¤¤¤¤ó¤À¤±¤É¡£ # -- # select items.id, items.name # from items, # (select item_id, sum(total) as sum_total # from sales # where date(created_at) = '2012-04-01' # group by item_id) as totals # where items.id = totals.item_id # order by totals.sum_total desc; # # 'ÆüÉÕ¤ò»ØÄꤷ¤Æ¡¢¤½¤ÎÆü¤Î¾¦ÉÊÊÌÈÎÇä¶â³Û¹ç·×¤òÂ礭¤¤½ç¤Ëɽ¼¨¤·¤¿¤¤' :- 'ÆüÉÕ¤ò»ØÄꤷ¤Æ¡¢'(_ÆüÉÕ), ¤½¤ÎÆü¤Î¾¦ÉÊÊÌÈÎÇä¶â³Û¹ç·×¤ò(_ÆüÉÕ,L1), Â礭¤¤½ç¤Ëɽ¼¨¤¹¤ë(L1). 'ÆüÉÕ¤ò»ØÄꤷ¤Æ¡¢'(_ÆüÉÕ) :- write('ÆüÉÕ¤ò8·å¤ÎÀ°¿ô¤ÇÆþÎϤ·¤Æ²¼¤µ¤¤ : '), get_line(Line), 'ÆüÉÕ¤ò»ØÄꤷ¤Æ¡¢¤Î¿ÇÃÇ'(Line,_ÆüÉÕ),!. 'ÆüÉÕ¤ò»ØÄꤷ¤Æ¡¢'(_ÆüÉÕ) :- 'ÆüÉÕ¤ò»ØÄꤷ¤Æ¡¢'(_ÆüÉÕ). 'ÆüÉÕ¤ò»ØÄꤷ¤Æ¡¢¤Î¿ÇÃÇ'(Line,_ÆüÉÕ) :- atom_to_term(Line,_8·å¤ÎÀ°¿ô,_), '8·å¤ÎÀ°¿ô'(_8·å¤ÎÀ°¿ô), '8·å¤ÎÀ°¿ô¤«¤éÆüÉÕ¤òÆÀ¤ë'(_8·å¤ÎÀ°¿ô,_ÆüÉÕ),!. 'ÆüÉÕ¤ò»ØÄꤷ¤Æ¡¢¤Î¿ÇÃÇ'(Line,_ÆüÉÕ) :- writef('ÆþÎϤµ¤ì¤¿ %t ¤«¤é¤ÏÆüÉÕ¤¬ÆÀ¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹\n',[Line]), fail. '8·å¤ÎÀ°¿ô'(_8·å¤ÎÀ°¿ô) :- integer(_8·å¤ÎÀ°¿ô), _8·å¤ÎÀ°¿ô >= 10000000, _8·å¤ÎÀ°¿ô =< 99999999. '8·å¤ÎÀ°¿ô¤«¤éÆüÉÕ¤òÆÀ¤ë'(_8·å¤ÎÀ°¿ô,_ÆüÉÕ) :- swritef(_ÆüÉÕʸ»úÎó,'%t',[_8·å¤ÎÀ°¿ô]), sub_atom(_ÆüÉÕʸ»úÎó,0,4,_,_ǯ), sub_atom(_ÆüÉÕʸ»úÎó,4,2,_,_·î), sub_atom(_ÆüÉÕʸ»úÎó,6,2,_,_Æü), atomic_list_concat([_ǯ,'-',_·î,'-',_Æü],_ÆüÉÕ),!. ¤½¤ÎÆü¤Î¾¦ÉÊÊÌÈÎÇä¶â³Û¹ç·×¤ò(_ÆüÉÕ,L1) :- findsetof(_id,( sales(_id,_item_id,_count,_total,_ÆüÉÕ)), L), findall([_total,_id],( append(_,[_id|R],L), ¾¦ÉʤÎÈÎÇä¹ç·×(_ÆüÉÕ,_id,_¹ç·×¶â³Û)), L1). ¾¦ÉʤÎÈÎÇä¹ç·×(_ÆüÉÕ,_id,_¹ç·×¶â³Û) :- findsum(_total,( sales(_id,_item_id,_count,_total,_ÆüÉÕ)), _¹ç·×¶â³Û). Â礭¤¤½ç¤Ëɽ¼¨¤¹¤ë(L1) :- Â礭¤¤½ç¤Ë(L1,L2), ɽ¼¨¤¹¤ë(L2). Â礭¤¤½ç¤Ë(L1,L2) :- sort(L1,L3), reverse(L3,L2). ɽ¼¨¤¹¤ë(_ÆüÉÕ,[]). ɽ¼¨¤¹¤ë(_ÆüÉÕ,[[_¹ç·×¶â³Û,_id]|R]) :- items(_id,_name,_price), writef('%t %t %20l %10r\n',[_ÆüÉÕ,_id,_name,_¹ç·×¶â³Û]), ɽ¼¨¤¹¤ë(_ÆüÉÕ,R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/633 # # MySQL 5.1¤Ç¤¹¡£ # # create table staff_list( # staff_id int(5) primary key //¼Ò°÷ÈÖ¹æ # staff_name varchar(8) //¼Ò°÷̾ # unit varchar(8) primary key //Éô½ð̾ # ) # # insert into staff_list (staff_id,staff_name,unit) values # (1,'ÈÏÇÏ','Áí̳'), # (2,'¶òÃÏ','Áí̳'), # (3,'²Ö»³','Áí̳'), # (1,'¹âÄÅ','´ë²è'), # (2,'ÃÓë','´ë²è'), # (3,'ĹÅè','´ë²è'), # (1,'È·»³','±Ä¶È'), # (2,'ÌîÅÄ','±Ä¶È'), # (3,'¾®Âô','±Ä¶È'), # (4,'»ÞÌî','±Ä¶È') # # # # ¤³¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤ËÂФ·¤ÆSELECT¤ò¤«¤±¤ëºÝ¡¢°ìÅ٤Υ¯¥¨¥ê¡¼¤Ç # Éô½ðÊ̤˥½¡¼¥È¤·¤¿¤¦¤¨¤Ç¡¢Áí̳¤À¤±staff_id¹ß½ç¤Ç¾¤ò¾º½ç¤Ç½Ð¤·¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£ # # order by unit,IF(staff_name='Áí̳',staff_id desc,staff_id asc) # ¤Ê¤É¤È»î¹Ô¤·¤Æ¤ß¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¤¦¤Þ¤¯¤Ç¤­¤Þ¤»¤ó¡£ # # ¤É¤Ê¤¿¤«¤¦¤Þ¤¤ÊýË¡¤ò¤´Â¸¤¸¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£ # # ¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£ # ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(1,ÈÏÇÏ,Áí̳). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(2,¶òÃÏ,Áí̳). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(3,²Ö»³,Áí̳). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(1,¹âÄÅ,´ë²è). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(2,ÃÓë,´ë²è). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(3,ĹÅè,´ë²è). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(1,È·»³,±Ä¶È). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(2,ÌîÅÄ,±Ä¶È). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(3,¾®Âô,±Ä¶È). ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(4,»ÞÌî,±Ä¶È). '¤³¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤òÁªÂò¤¹¤ëºÝ¡¢°ìÅÙÉô½ðÊ̤˥½¡¼¥È¤·¤¿¤¦¤¨¤Ç¡¢Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç½Ð¤·¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£'(_Éô½ð̾,_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾) :- °ìÅÙÉô½ðÊ̤˥½¡¼¥È¤·¤¿¤¦¤¨¤Ç(_Éô½ð̾¤Ê¤é¤Ó), Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç½Ð¤·¤¿¤¤(_Éô½ð̾¤Ê¤é¤Ó,_Éô½ð̾,_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾). °ìÅÙÉô½ðÊ̤˥½¡¼¥È¤·¤¿¤¦¤¨¤Ç(_Éô½ð̾¤Ê¤é¤Ó) :- findsetof(_Éô½ð̾,( ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾,_Éô½ð̾)), _Éô½ð̾¤Ê¤é¤Ó). Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç½Ð¤·¤¿¤¤(_Éô½ð̾¤Ê¤é¤Ó,_Éô½ð̾,_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾) :- member(_Éô½ð̾,_Éô½ð̾¤Ê¤é¤Ó), Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç½Ð¤·¤¿¤¤(_Éô½ð̾,_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾). Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç½Ð¤·¤¿¤¤(Áí̳,_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾) :- Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç(_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾). Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç½Ð¤·¤¿¤¤(_Éô½ð̾,_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾) :- \+(_Éô½ð̾ == Áí̳), ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾,_Éô½ð̾). Áí̳¤À¤±¼Ò°÷ÈÖ¹æ¹ß½ç¤Ç(_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾) :- findall([_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾],( ¥¹¥¿¥Ã¥Õ¥ê¥¹¥È(_¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾,Áí̳)), L1), ¹ß½ç¤Ç¥½¡¼¥È(L1,L2), member([¼Ò°÷ÈÖ¹æ,_¼Ò°÷̾],L2). ¹ß½ç¤Ç¥½¡¼¥È(L1,L2) :- sort(L1,L3), reverse(L3,L2). % % findsetof/3 % % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/621 # # ¢£DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó # MySQL 5.0 # # ¢£¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ # ŹÊޥơ¼¥Ö¥ë # AreaID¡¡¡¡¡¡¡¡¡¡¡¡int(1)¢«¤³¤Î2¤Ä¤Ç¥­¡¼¤Ë¤Ê¤Ã¤Æ¤Þ¤¹ # TenpoID¡¡¡¡¡¡¡¡¡¡int(1)¢«¤³¤Î2¤Ä¤Ç¥­¡¼¤Ë¤Ê¤Ã¤Æ¤Þ¤¹ # uriage¡¡¡¡¡¡¡¡¡¡¡¡¡¡int(16) # # ¼Ò°÷¥Æ¡¼¥Ö¥ë # SyainNo¡¡¡¡¡¡¡¡¡¡¡¡int(255) # AreaID¡¡¡¡¡¡¡¡¡¡¡¡¡¡int(1) # TenpoID¡¡¡¡¡¡¡¡¡¡¡¡int(1) # SyainName¡¡¡¡¡¡¡¡varchar(256) # # ¢£Íߤ·¤¤·ë²Ì # # uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷¤òÈ´¤­½Ð¤¹ # ¤Î¤È # ¤½¤Î¼Ò°÷¤ò¤¤¤Ã¤Ú¤ó¤Ë¾Ã¤¹ # # ¤É¤Î¤è¤¦¤ËSQLʸ¤ò½ñ¤±¤Ð¤¤¤¤¤Ç¤·¤ç¤¦¤«¡© # % % ¤³¤ÎÌäÂê¤Î¤è¤¦¤Ë¡¢findall/3¤ò»È¤Ã¤Æ¡¢Ã±°ÌÀá¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éÆÉ¤ß¼è¤ë¾ì¹ç¤Ï % ñ½ã¤Ëappend/3¤ò»È¤Ã¤Æ²ò¤òÁȤ߾夲¤Æ¤¤¤¯¤Î¤¬¤è¤¤¡£ % 'uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷¤òÈ´¤­½Ð¤¹'(_uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷No¤È¼Ò°÷̾¤Ê¤é¤Ó) :- 'uriage¤¬5000°Ê²¼¤ÎŹÊÞ'(_uriage¤¬5000°Ê²¼¤ÎŹÊޤʤé¤Ó), 'uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷¤òÈ´¤­½Ð¤¹'(_uriage¤¬5000°Ê²¼¤ÎŹÊÞ,_uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷No¤È¼Ò°÷̾¤Ê¤é¤Ó). 'uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷¤òÈ´¤­½Ð¤¹'([],[]). 'uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷¤òÈ´¤­½Ð¤¹'([[_AreaID,_TempoID]|R1],_uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷No¤È¼Ò°÷̾¤Ê¤é¤Ó) :- ŹÊޤ˰¤·¤Æ¤ë¼Ò°÷(_AreaID,_TempoID,_ŹÊޤ˰¤·¤Æ¤ë¼Ò°÷No¤È¼Ò°÷̾¤Ê¤é¤Ó), 'uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷¤òÈ´¤­½Ð¤¹'(R1,_uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷No¤È¼Ò°÷̾¤Ê¤é¤Ó_1), append(_ŹÊޤ˰¤·¤Æ¤ë¼Ò°÷No¤È¼Ò°÷̾¤Ê¤é¤Ó,_uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷No¤È¼Ò°÷̾¤Ê¤é¤Ó_1,_uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷No¤È¼Ò°÷̾¤Ê¤é¤Ó). 'uriage¤¬5000°Ê²¼¤ÎŹÊÞ'(_uriage¤¬5000°Ê²¼¤ÎŹÊޤʤé¤Ó) :- findsetof([_AreaID,_TempoID],( ŹÊÞ(_AreaID,_TempoID,_uriage), _uriage =< 5000), _uriage¤¬5000°Ê²¼¤ÎŹÊޤʤé¤Ó). ŹÊޤ˰¤·¤Æ¤ë¼Ò°÷(_AreaID,_TempID,_ŹÊޤ˰¤·¤Æ¤ë¼Ò°÷No¤È¼Ò°÷̾¤Ê¤é¤Ó) :- findall([_SyainNo,_SyainName],( ¼Ò°÷(_SyainNo,_AreaID,_TempoID,_SyainName)), _ŹÊޤ˰¤·¤Æ¤ë¼Ò°÷No¤È¼Ò°÷̾¤Ê¤é¤Ó). 'uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷¤òÈ´¤­½Ð¤·¤¿¾å¡¢¤½¤Î¼Ò°÷¤ò¤¤¤Ã¤Ú¤ó¤Ë¾Ã¤¹' :- 'uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷¤òÈ´¤­½Ð¤¹'(_uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷No¤È¼Ò°÷̾¤Ê¤é¤Ó), append(_,[[_SyainNo,_SyainName]|R],_uriage¤¬5000°Ê²¼¤ÎŹÊޤ˰¤·¤Æ¤ë¼Ò°÷No¤È¼Ò°÷̾¤Ê¤é¤Ó), retract(¼Ò°÷(_SyainNo,_AreaID,_TempoID,_SyainName)), R = []. % findsetof/3 % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/614 # # ¡¦DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó # MySQL # # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ # ŹÊÞ¡ÊŹÊÞID ŹÊÞ̾¡Ë # # ¾¦ÉÊ(¾¦ÉÊID ŹÊÞID ¾¦ÉÊ̾) # (¢¨Æ±¤¸Ì¾Á°¤Î¾¦Éʤ¬Ê£¿ô¤ÎŹÊޤˤ¢¤Ã¤Æ¤â¡¢Ê̤ξ¦ÉʤȤ·¤Æ°·¤¦) # # Çä¤ê¾å¤²(Çä¤ê¾å¤²ID ¾¦ÉÊID ¸Ä¿ô) # # ¡¦Íߤ·¤¤·ë²Ì # ŹÊÞ̾¡¡¾¦ÉÊ̾¡¡Çä¤ê¾å¤²¸Ä¿ô¹ç·× # (¢¨Å¹ÊÞ̾¡¢¾¦ÉÊ̾¤Ç¥½¡¼¥È) # # ¡¦ÀâÌÀ # SELECT * FROM `ŹÊÞ` ORDER BY `ŹÊÞ̾`; # ¤³¤Î·ë²Ì¤ò¥×¥í¥°¥é¥à¦¤Ç¥ë¡¼¥× # SELECT * FROM ¾¦ÉÊ WHERE ŹÊÞID=? ORDER BY `¾¦ÉÊ̾`; # ¤µ¤é¤Ë¤³¤Î·ë²Ì¤ò¥ë¡¼¥× # SELECT SUM(¸Ä¿ô) FROM Çä¤ê¾å¤² WHERE ¾¦ÉÊID=? # # ¤³¤ì¤À¤È»þ´Ö¤¬¤«¤«¤ê¤¹¤®¤ë¤Î¤Ç¡¢¤³¤ì¤ò1¤Ä¡¢¤Þ¤¿¤Ï2¤Ä¤ÎSQL¤Ë¤Þ¤È¤á¤¿¤¤¤Ç¤¹¡£ # # # SELECT *, SUM(`Çä¤ê¾å¤²`.¸Ä¿ô`) AS `Çä¤ê¾å¤²¸Ä¿ô¹ç·×` # FROM `¾¦ÉÊ` # LEFT JOIN `Çä¤ê¾å¤²` ON `¾¦ÉÊ`.`¾¦ÉÊID` = `Çä¤ê¾å¤²`.`¾¦ÉÊID` # WHERE `¾¦ÉÊ`.`ŹÊÞID`=? # # ¤È¤ê¤¢¤¨¤º²¼2¤Ä¤À¤±¤Ç¤â¤Þ¤È¤á¤è¤¦¤È¤·¤Æ¤ß¤¿¤Î¤Ç¤¹¤¬¡¢¹ç·×¤¬¾¦ÉÊËè¤Ç¤Ï¤Ê¤¯Å¹ÊÞËè¤Î¹ç·×¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ # # # 'ŹÊÞ̾¡¦¾¦ÉÊ̾¤ò¸°¤È¤·¤ÆÇä¤ê¾å¤²¸Ä¿ô¹ç·×¤ò½¸Ì󤹤ë'(_ŹÊÞ̾,_¾¦ÉÊ̾,_Çä¤ê¾å¤²¸Ä¿ô¹ç·×) :- 'ŹÊÞ̾¡¦¾¦ÉÊ̾¤ò¸°¤Ê¤é¤Ó¤È¤¹¤ë'(LL1), 'ŹÊÞ̾¡¦¾ÃÈñ̾¤ò¸°¤ËÇä¤ê¾å¤²¸Ä¿ô¹ç·×¤ò½¸Ì󤹤ë'(LL1,LL2), member([_ŹÊÞ̾,_¾¦ÉÊ̾,_Çä¤ê¾å¤²¸Ä¿ô¹ç·×],LL2). 'ŹÊÞ̾¡¦¾¦ÉÊ̾¤ò¸°¤Ê¤é¤Ó¤È¤¹¤ë'(LL1) :- findsetof([_ŹÊÞ̾,_¾¦ÉÊ̾],( ŹÊÞ(_ŹÊÞID,_ŹÊÞ̾), ¾¦ÉÊ(_¾¦ÉÊID,_ŹÊÞID,_¾¦ÉÊ̾)), LL1). 'ŹÊÞ̾¡¦¾ÃÈñ̾¤ò¸°¤ËÇä¤ê¾å¤²¸Ä¿ô¹ç·×¤ò½¸Ì󤹤ë'(LL1,LL2) :- findall([_ŹÊÞ̾,_¾¦ÉÊ̾,_Çä¤ê¾å¤²¸Ä¿ô¹ç·×],( count((member([_ŹÊÞ̾,_¾¦ÉÊ̾],LL1), ŹÊÞ(_ŹÊÞID,_ŹÊÞ̾), ¾¦ÉÊ(_¾¦ÉÊID,_ŹÊÞID,_¾¦ÉÊ̾)),_Çä¤ê¾å¤²¸Ä¿ô¹ç·×)), LL2). % findsetof/3 % count/2 % findsum/3 % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/569 # # code | val # ------------ # A | 11 # A | 23 # A | 34 # A | 42 # B | 321 # B | 112 # B | 23 # B | 245 # ¤È¤¤¤¦¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¡¢¤³¤³¤«¤é # Ʊ¤¸code¤ò»ý¤Ä¹Ô¤¬4¹Ô°Ê¾å¤¢¤ë¾ì¹ç¡¢val½ç¤Ç¾®¤µ¤¤Êý¤«¤é3¹Ô»Ä¤·¤Æ¤Î¤³¤ê¤òºï½ü # ¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢SQL°ìȯ¤Ç¤Ç¤­¤Þ¤¹¤«¡©DBMS¤ÏMySQL¤Ç¤¹¡£ # # ¢­¤Û¤·¤¤·ë²Ì # code | val # ------------ # A | 11 # A | 23 # A | 34 # B | 112 # B | 23 # B | 245 # # 'Ʊ¤¸code¤ò»ý¤Ä¹Ô¤¬4¹Ô°Ê¾å¤¢¤ë¾ì¹ç¡¢val½ç¤Ç¾®¤µ¤¤Êý¤«¤é3¹Ô»Ä¤·¤Æ¤Î¤³¤ê¤òºï½ü¤·¤¿¤¤' :- findsetof(_code,( table(_code,_)), _code¸õÊä¤Ê¤é¤Ó), append(_,[_code|R],_code¸õÊä¤Ê¤é¤Ó), 'codeËè¤Ëval¤Î¾®¤µ¤¤½ç4°Ì°Ê²¼¤ÎÁȤò'(_code,_4°Ì°Ê²¼¤ÎÁȤʤé¤Ó), 'ºï½ü¤¹¤ë'(_4°Ì°Ê²¼¤ÎÁȤʤé¤Ó), R = []. 'codeËè¤Ëval¤Î¾®¤µ¤¤½ç4°Ì°Ê²¼¤ÎÁȤò'(_code,_4°Ì°Ê²¼¤ÎÁȤʤé¤Ó) :- findall([_val,_code],( table(_code,_val)), L1), sort(L1,L2), 'val¤Î¾®¤µ¤¤½ç4°Ì°Ê²¼¤ÎÁÈ'(L2,_4°Ì°Ê²¼¤ÎÁȤʤé¤Ó). 'val¤Î¾®¤µ¤¤½ç4°Ì°Ê²¼¤ÎÁÈ'([_,_,_|R],R) :- !. 'val¤Î¾®¤µ¤¤½ç4°Ì°Ê²¼¤ÎÁÈ'(_,[]). ºï½ü¤¹¤ë([]). ºï½ü¤¹¤ë([[A,B]|R]) :- retract(table(B,A)), ºï½ü¤¹¤ë(R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/569 # # code | val # ------------ # A | 11 # A | 23 # A | 34 # A | 42 # B | 321 # B | 112 # B | 23 # B | 245 # ¤È¤¤¤¦¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¡¢¤³¤³¤«¤é # Ʊ¤¸code¤ò»ý¤Ä¹Ô¤¬4¹Ô°Ê¾å¤¢¤ë¾ì¹ç¡¢val½ç¤Ç¾®¤µ¤¤Êý¤«¤é3¹Ô»Ä¤·¤Æ¤Î¤³¤ê¤òºï½ü # ¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢SQL°ìȯ¤Ç¤Ç¤­¤Þ¤¹¤«¡©DBMS¤ÏMySQL¤Ç¤¹¡£ # # ¢­¤Û¤·¤¤·ë²Ì # code | val # ------------ # A | 11 # A | 23 # A | 34 # B | 112 # B | 23 # B | 245 # # 'Ʊ¤¸code¤ò»ý¤Ä¹Ô¤¬4¹Ô°Ê¾å¤¢¤ë¾ì¹ç¡¢val½ç¤Ç¾®¤µ¤¤Êý¤«¤é3¹Ô»Ä¤·¤Æ¤Î¤³¤ê¤òºï½ü¤·¤¿¤¤' :- findsetof(_code,( table(_code,_)), _code¸õÊä¤Ê¤é¤Ó), append(_,[_code|R],_code¸õÊä¤Ê¤é¤Ó), 'codeËè¤Ëval¤Î¾®¤µ¤¤½çºÇÂç3·ï'(_code,L), 'ºÇÂç3·ï¤ò½ñ¤­Ì᤹'(L), R = []. 'codeËè¤Ëval¤Î¾®¤µ¤¤½çºÇÂç3·ï'(_code,L) :- findall([_val,_code],( retract(table(_code,_val))), L1), sort(L1,L2), 'val¤Î¾®¤µ¤¤½çºÇÂç3·ï'(L1,L). 'val¤Î¾®¤µ¤¤½çºÇÂç3·ï'([],[]). 'val¤Î¾®¤µ¤¤½çºÇÂç3·ï'([[A1,B1],[A2,B2],[A3,B3]|_],[[B1,A1],[B2,A2],[B3,A3]]) :- !. 'val¤Î¾®¤µ¤¤½çºÇÂç3·ï'([[A,B]|R1],[[B,A]|R2]) :- 'val¤Î¾®¤µ¤¤½çºÇÂç3·ï'(R1,R2). 'ºÇÂç3·ï¤ò½ñ¤­Ì᤹'([]). 'ºÇÂç3·ï¤ò½ñ¤­Ì᤹'([[A,B]|R]) :- assertz(table(A,B)), 'ºÇÂç3·ï¤ò½ñ¤­Ì᤹'(R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # # ¥Ç¡¼¥¿¥»¥Ã¥È # date # 2001-10-19 # 2001-10-19 # 2003-12-7 # 2004-9-7 # .... # # ¤È¤¤¤Ã¤¿id¤ÈÆüÉդν¸¤Þ¤ê¤¬¤¢¤ê¤Þ¤¹¡£ÆüÉդϽÅÊ£¤·¤Æ¤¤¤Þ¤¹¡£ # ¤³¤³¤«¤é,SELECT count(date) FROM table GROUP BY date¤ÇÆüÉÕ¤´¤È¤Î½¸·×¤¬ # ¤È¤ì¤¿¤Î¤Ç¤¹¤¬¡¢¤µ¤é¤Ëmax¤ò»È¤Ã¤Æ½¸·×¤¬ºÇÂç¤ÎÆü¤ÎÆüÉդȥ«¥¦¥ó¥È¿ô¤ò # ½Ð¤·¤¿¤¤¤Î¤Ç¤¹¤¬¤¦¤Þ¤¯¤¤¤­¤Þ¤»¤ó¡£ # ¾å¤ÎÎã¤Ç¤Ï¡¢2001-10-19,2¤È¤¤¤¦¤Î¤ò¼è¤ê¤¿¤¤¤Î¤Ç¤¹¤¬¡¢¤É¤¦¤ä¤Ã¤¿¤é¤¤¤¤¤ó¤Ç¤·¤ç¤¦¤«¡© '½¸·×¤¬ºÇÂç¤ÎÆü¤ÎÆüÉդȥ«¥¦¥ó¥È¿ô'(_ÆüÉÕ,_ÅÙ¿ô) :- findsetof(_ÆüÉÕ,( ¥Ç¡¼¥¿¥»¥Ã¥È(_ÆüÉÕ)), _ÆüÉդʤé¤Ó), member(_ÆüÉÕ,_ÆüÉդʤé¤Ó), count(¥Ç¡¼¥¿¥»¥Ã¥È(_ÆüÉÕ),_ÅÙ¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/411 # # ¼ÁÌä¤Ç¤¹¡£DB¤ÏSQLite3¤Ç¤¹¡£ # ¹½À®¤¬Æ±¤¸¤Ê¤Î¤Ç../test/read.cgi/db/1316769778/244¤Î¥Æ¡¼¥Ö¥ë¤òÀâÌÀ¤Ë»È¤ï¤»¤Æ¤â¤é¤¤¤Þ¤¹ # # shop # id name # 1 A¥«¥ó¥Ñ¥Ë¡¼ # 2 B¥«¥ó¥Ñ¥Ë¡¼ # 3 C¥«¥ó¥Ñ¥Ë¡¼ # # area # 1 Ë̳¤Æ» # 2 ÀÄ¿¹ # 3 ´ä¼ê # 4 ½©ÅÄ # # shop_area # shop_id area_id # 1 1 # 1 2 # 1 3 # 2 2 # 2 4 # 3 2 # 3 3 # # # Ë̳¤Æ»¤Ê¤é¡¢B¥«¥ó¥Ñ¥Ë¡¼¡¦C¥«¥ó¥Ñ¥Ë¡¼ # ÀÄ¿¹¤Ê¤é¡¢Ìµ¤· # ´ä¼ê¤Ê¤é¡¢B¥«¥ó¥Ñ¥Ë¡¼ # ½©ÅĤʤ顢A¥«¥ó¥Ñ¥Ë¡¼¡¦C¥«¥ó¥Ñ¥Ë¡¼ # Ë̳¤Æ»¡¦½©ÅĤʤ顢C¥«¥ó¥Ñ¥Ë¡¼ # # ½ü³°¸¡º÷¤ÎÍ×ÎΤǡ¢ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤ò¸Æ¤Ó½Ð¤·¤¿¤¤»þ¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤¤¤Î¤Ç¤·¤ç¤¦¤« # '½ü³°¸¡º÷¤ÎÍ×ÎΤǡ¢ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤ò¸Æ¤Ó½Ð¤¹' :- '½ü³°¸¡º÷¤ÎÍ×ÎΤǡ¢ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤ò¸Æ¤Ó½Ð¤¹'(_Ãϰè¤Ê¤é¤Ó,_ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤Ê¤é¤Ó), concat_atom(_Ãϰè¤Ê¤é¤Ó,'¡¦',S1), concat_atom(_ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤Ê¤é¤Ó,'¡¦',S2), writef('%t¤Ê¤é¡¢%t\n',[S1,S2]), fail. '½ü³°¸¡º÷¤ÎÍ×ÎΤǡ¢ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤ò¸Æ¤Ó½Ð¤¹'. '½ü³°¸¡º÷¤ÎÍ×ÎΤǡ¢ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤ò¸Æ¤Ó½Ð¤¹'(_Ãϰè¤Ê¤é¤Ó,_ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤Ê¤é¤Ó) :- findall([_area_name,_ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤Ê¤é¤Ó],( 'ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤ò¸Æ¤Ó½Ð¤¹'(_area_name,_ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤Ê¤é¤Ó)), L1), findsetof(_ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤Ê¤é¤Ó,( append(_,[[_,_ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤Ê¤é¤Ó]|_],L1)), _ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤Ê¤é¤Ó¥Ñ¥¿¡¼¥ó), append(_,[_ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤Ê¤é¤Ó|_],_ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤Ê¤é¤Ó¥Ñ¥¿¡¼¥ó), findall(_area_name,( append(_,[[_area_name,_ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤Ê¤é¤Ó]|_],L1)), _Ãϰè¤Ê¤é¤Ó). 'ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤ò¸Æ¤Ó½Ð¤¹'(_area_name,_ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤Ê¤é¤Ó) :- area(_area_id,_area_name), findsetof([_shop_id,_name],( shop_area(_shop_id,_area_id), shop(_shop_id,_name)), L1), findall(_name,( append(_,[[_shop_id,_name]|_],L1), \+(shop_area(_shop_id,_area_id))), _ÂоݤλټҤ¬Ìµ¤¤²ñ¼Ò¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/365 # # ¡¦DB̾¡§Firebird1.03 # ¡¦¥Æ¡¼¥Ö¥ë # ¡¡¢£¥á¥¤¥ó # ¡¡¡¡¼õÃíÈֹ桡¼õÃíÆü¡¡Ãíʸ¼Ò # ¡¡¡¡11¡¡¡¡¡¡¡¡2011/12/20¡¡A¼Ò # ¡¡¡¡12¡¡¡¡¡¡¡¡2011/12/21¡¡B¼Ò # ¡¡¢£¥µ¥Ö # ¡¡¡¡Ï¢ÈÖ¡¡¼õÃíÈֹ桡¾¦ÉÊ¥³¡¼¥É¡¡¿ô # ¡¡¡¡50¡¡¡¡11¡¡¡¡¡¡¡¡A10¡¡¡¡¡¡¡¡100 # ¡¡¡¡51¡¡¡¡11¡¡¡¡¡¡¡¡C30¡¡¡¡¡¡¡¡20 # ¡¡¡¡52¡¡¡¡12¡¡¡¡¡¡¡¡A10¡¡¡¡¡¡¡¡10 # ¡¡¢£¾¦ÉÊ # ¡¡¡¡¾¦ÉÊ¥³¡¼¥É¡¡¾¦ÉÊ̾¡¡¥«¥Æ¥´¥ê¡¡Ç¼ÉÊÈÖ¹æ¡Ê¾¦Éʤ´¤È¤Ç½ÅÊ£¤·¤Æ¤¤¤Þ¤»¤ó¡Ë # ¡¡¡¡A10¡¡¡¡¡¡¡¡¡¡¥³¡¼¥È¡¡ÍÎÉþ¡¡¡¡¡¡100 # ¡¡¡¡C30¡¡¡¡¡¡¡¡¡¡ÂÓ¡¡¡¡¡¡ÏÂÉþ¡¡¡¡¡¡504 # # ¥á¥¤¥ó¤Î¼õÃíÈÖ¹æ¤È¥µ¥Ö¤Î¼õÃíÈֹ桢¥µ¥Ö¤Î¾¦ÉÊ¥³¡¼¥É¤È¾¦Éʤξ¦ÉÊ¥³¡¼¥É¤Ç # ¥ê¥ó¥¯¤·¤Æ¤¤¤Þ¤¹¡£ # # Íߤ·¤¤·ë²Ì # ¼õÃíÆü¤Î´ü´Ö¡Ê¤¤¤Ä¤«¤é¤¤¤Ä¤Þ¤Ç¡Ë¤È¡¢¾¦ÉʤΥ«¥Æ¥´¥ê¤ÈǼÉÊÈÖ¹æ¤Ç¡¢ # ¼õÃí¤ÎÁ´ÆâÍÆ¡Ê¾¦Éʡˤ¬ÃΤꤿ¤¤¤Ç¤¹¡£ # ¼õÃíÆü¡§2011/12/01¤«¤é12/31¤Þ¤Ç # ¥«¥Æ¥´¥ê¡§ÍÎÉþ¡¡Ç¼ÉÊÈֹ桧100¤Ç¸¡º÷¤ò¤·¤Æ # # ¼õÃíÈֹ桡¼õÃíÆü¡¡Ãíʸ¼Ô¡¡¾¦ÉÊ¥³¡¼¥É¡¡¾¦ÉÊ̾¡¡¿ôÎÌ # 11¡¡¡¡¡¡¡¡2011/12/20¡¡A¼Ò¡¡A10¡¡¡¡¡¡¡¡¥³¡¼¥È¡¡100 # 11¡¡¡¡¡¡¡¡2011/12/20¡¡A¼Ò¡¡C30¡¡¡¡¡¡¡¡ÂÓ¡¡¡¡¡¡20----¡ú # 12¡¡¡¡¡¡¡¡2011/12/21¡¡B¼Ò¡¡A10¡¡¡¡¡¡¡¡¥³¡¼¥È¡¡10 # ¡ú¼õÃí¤ÎÁ´ÆâÍÆ¤¬ÃΤꤿ¤¤¤Î¤Ç¡¢³ºÅö¤¹¤ë¼õÃíÈÖ¹æ¤Î¥µ¥Ö¤Ï¤¹¤Ù¤ÆÉ½¼¨ # ¤·¤¿¤¤¡£¥á¥¤¥ó¤ÎÆâÍÆ¤Ï½Åʣɽ¼¨¤È¤Ê¤ê¤Þ¤¹¡£ # # ´ÝÅꤲ¤Ç¤¹¤ß¤Þ¤»¤ó¤¬¡¢¤É¤Ê¤¿¤«SQLʸ¤ò¤ª´ê¤¤¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤ç¤¦¤«¡£ # ¥Æ¡¼¥Ö¥ë¤¬£³¤Ä¤Ë¤Ê¤ë¤È¤É¤¦¤·¤Æ¤è¤¤¤â¤Î¤«¤ï¤«¤é¤Ê¤¤¤Ç¤¹¡£ # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # # '¼õÃíÆü¤Î´ü´Ö¡Ê¤¤¤Ä¤«¤é¤¤¤Ä¤Þ¤Ç¡Ë¤È¡¢¾¦ÉʤΥ«¥Æ¥´¥ê¤ÈǼÉÊÈÖ¹æ¤Ç¡¢¼õÃí¤ÎÁ´ÆâÍÆ¡Ê¾¦Éʡˤ¬ÃΤꤿ¤¤'(_¼õÃíÆü²¼¸Â,_¼õÃíÆü¾å¸Â,_¾¦ÉÊ¥«¥Æ¥´¥ê,_ǼÉÊÈÖ¹æ) :- ¼õÃíÈÖ¹æ¸õÊä¤òÆÀ¤ë(_¼õÃíÆü²¼¸Â,_¼õÃíÆü¾å¸Â,_¥«¥Æ¥´¥ê,_ǼÉÊÈÖ¹æ,_¼õÃíÈÖ¹æ¤Ê¤é¤Ó), findall([_¼õÃíÈÖ¹æ,_¼õÃíÆü,_Ãíʸ¼Ô,_¾¦ÉÊ¥³¡¼¥É,_¾¦ÉÊ̾,_¿ôÎÌ],( append(_,[_¼õÃíÈÖ¹æ|_],_¼õÃíÈÖ¹æ¤Ê¤é¤Ó), ¼õÃíÈÖ¹æ¤ò¸°¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¤ÎÁªÂò(_¼õÃíÈÖ¹æ,_¼õÃíÆü,_Ãíʸ¼Ô,_¾¦ÉÊ¥³¡¼¥É,_¾¦ÉÊ̾,_¿ôÎÌ)), LL1), À°Îó(LL1,LL2), ɽ¼¨¤¹¤ë(LL2). ¼õÃíÈÖ¹æ¸õÊä¤òÆÀ¤ë(_¼õÃíÆü²¼¸Â,_¼õÃíÆü¾å¸Â,_¥«¥Æ¥´¥ê,_ǼÉÊÈÖ¹æ,_¼õÃíÈÖ¹æ¤Ê¤é¤Ó) :- findsetof(_¼õÃíÈÖ¹æ,( ¥á¥¤¥ó(_¼õÃíÈÖ¹æ,_¼õÃíÆü,_Ãíʸ¼Ò), _¼õÃíÆü @>= _¼õÃíÆü²¼¸Â, _¼õÃíÆü @=< _¼õÃíÆü¾å¸Â, ¥µ¥Ö(_Ï¢ÈÖ,_¼õÃíÈÖ¹æ,_¾¦ÉÊ¥³¡¼¥É,_¿ôÎÌ), ¾¦ÉÊ(_¾¦ÉÊ¥³¡¼¥É,_¾¦ÉÊ̾,_¥«¥Æ¥´¥ê,_ǼÉÊÈÖ¹æ)), _¼õÃíÈÖ¹æ¤Ê¤é¤Ó). ¼õÃíÈÖ¹æ¤ò¸°¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò·ë¹ç(_¼õÃíÈÖ¹æ,_¼õÃíÆü,_Ãíʸ¼Ô,_¾¦ÉÊ¥³¡¼¥É,_¾¦ÉÊ̾,_¿ôÎÌ) :- ¥á¥¤¥ó(_¼õÃíÈÖ¹æ,_¼õÃíÆü,_Ãíʸ¼Ò), ¥µ¥Ö(_Ï¢ÈÖ,_¼õÃíÈÖ¹æ,_¾¦ÉÊ¥³¡¼¥É,_¿ôÎÌ), ¾¦ÉÊ(_¾¦ÉÊ¥³¡¼¥É,_¾¦ÉÊ̾,_¥«¥Æ¥´¥ê,_ǼÉÊÈÖ¹æ). ɽ¼¨¤¹¤ë(LL) :- write('¼õÃíÈֹ桡¼õÃíÆü¡¡Ãíʸ¼Ô¡¡¾¦ÉÊ¥³¡¼¥É¡¡¾¦ÉÊ̾¡¡¿ôÎÌ\n'), append(_,[[_¼õÃíÈÖ¹æ,_¼õÃíÆü,_Ãíʸ¼Ô,_¾¦ÉÊ¥³¡¼¥É,_¾¦ÉÊ̾,_¿ôÎÌ]|R],LL), writef('%10l %8l %8c %8c %8c %14l %8r\n',[_¼õÃíÈÖ¹æ,_¼õÃíÆü,_Ãíʸ¼Ô,_¾¦ÉÊ¥³¡¼¥É,_¾¦ÉÊ̾,_¿ôÎÌ]), R = []. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/332 # # oracle¤Ç¤¹¡£ # # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ # ¥Æ¡¼¥Ö¥ëA # ¡¡ID ¡ÃÆüÉÕ # ¡¡100¡Ã10/1 # ¡¡100¡Ã10/2 # 100¡Ã10/5 # ¡¡101¡Ã11/1 # ¡¡102¡Ã11/1 # ¡¡102¡Ã11/2 # ¡¡103¡Ã12/1 # # # ¥Æ¡¼¥Ö¥ëB # ¡¡ID ¡Ã´ü´Ö(¼«)¡Ã´ü´Ö(»ê) # ¡¡100¡Ã10/1¡¡¡¡¡Ã10/4 # ¡¡101¡Ã10/1¡¡¡¡¡Ã10/30 # ¡¡102¡Ã11/1¡¡¡¡¡Ã11/5 # ¡¡103¡Ã12/1¡¡¡¡¡Ã12/1 # ¡¡ # # ¡¦Íߤ·¤¤·ë²Ì # # ¡¡ID ¡Ã´ü´ÖÆâ¤Î¥«¥¦¥ó¥È # ¡¡100¡Ã2 # ¡¡101¡Ã0 # ¡¡102¡Ã2 # ¡¡103¡Ã1 # ¡¡ # # ¡¦ÀâÌÀ¡§ # ID¤ò¥­¡¼¤Ë¡¢´ü´ÖÆâ¤ÎID¤´¤È¤Î¥«¥¦¥ó¥È¤ò¤È¤ê¤¿¤¤¤Ç¤¹¡£ # SQL1ËܤǼèÆÀ¤¹¤ëÊýË¡¤Ï¤¢¤ê¤Þ¤¹¤Ç¤·¤ç¤¦¤«¡© # Îó¤ÏÁý¤ä¤·¤¿¤¯¤Ê¤¤¤Ç¤¹¡£ # ¥Æ¡¼¥Ö¥ëA(100,10/1). ¥Æ¡¼¥Ö¥ëA(100,10/2). ¥Æ¡¼¥Ö¥ëA(100,10/5). ¥Æ¡¼¥Ö¥ëA(101,11/1). ¥Æ¡¼¥Ö¥ëA(102,11/1). ¥Æ¡¼¥Ö¥ëA(102,11/2). ¥Æ¡¼¥Ö¥ëA(103,12/1). ¥Æ¡¼¥Ö¥ëB(100,10/1,10/4). ¥Æ¡¼¥Ö¥ëB(101,10/1,10/30). ¥Æ¡¼¥Ö¥ëB(102,11/1,11/5). ¥Æ¡¼¥Ö¥ëB(103,12/1,12/1). 'ID¤ò¥­¡¼¤Ë¡¢´ü´ÖÆâ¤ÎID¤´¤È¤Î¥«¥¦¥ó¥È¤ò¤È¤ê¤¿¤¤'(_ID,_´ü´Ö_¼«,_´ü´Ö_»ê,_ÅÙ¿ô) :- findsetof([_ID,_´ü´Ö_¼«,_´ü´Ö_»ê],( ¥Æ¡¼¥Ö¥ëB(_ID,_´ü´Ö_¼«,_´ü´Ö_»ê)), LL1), append(_,[[_ID,_´ü´Ö_¼«,_´ü´Ö_»ê]|_],LL1), count(( ¥Æ¡¼¥Ö¥ëA(_ID,_ÆüÉÕ), _ÆüÉÕ @>= _´ü´Ö_¼«, _ÆüÉÕ @=< _´ü´Ö_»ê), _ÅÙ¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/323 # # ¡Ú¼ÁÌ䥯¥ó¥×¥ì¡Û # ¡¦DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó MySQL 5.1 # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ # ¡¦Íߤ·¤¤·ë²Ì # ¡¦ÀâÌÀ # # ¥Æ¡¼¥Ö¥ë¡Ö¥«¡¼¥È¡× # ¥«¥é¥à ¡Ö¥»¥Ã¥·¥ç¥óID¡×¡Ö¾¦ÉʼïÊ̡ס֥«¡¼¥È¤ËÆþ¤ì¤¿»þ¹ï¡× # # ¥Æ¡¼¥Ö¥ë¡Ö¥«¡¼¥È¾ÜºÙ¡× # ¥«¥é¥à ¡Ö¥»¥Ã¥·¥ç¥óID¡×¡Ö¾¦ÉÊ¥³¡¼¥É¡× # # ¥Æ¡¼¥Ö¥ë¡Ö¾¦Éʥꥹ¥È¡× # ¥«¥é¥à¡Ö¾¦ÉÊ¥³¡¼¥É¡×¡Ö¾¦ÉʼïÊÌ¡× # # ¤È¤¤¤¦¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¤Þ¤¹¡£ # # ºÇ¸å¤Ë¥«¡¼¥È¤ËÆþ¤ì¤¿»þ¹ï¤«¤é12»þ´Ö°Ê¾å·Ð²á¤·¤¿¥»¥Ã¥·¥ç¥óID¤ò¸¡º÷¤·¤Æ¡¢ # ¤½¤Î¥»¥Ã¥·¥ç¥óID¤ò»ý¤Ä¥ì¥³¡¼¥É¤ò¡Ö¥«¡¼¥È¡×¡Ö¥«¡¼¥È¾ÜºÙ¡×¤ÎξÊý¤«¤é # Á´¤Æºï½ü¤·¤¿¤¤¤Î¤Ç¤¹¡£ # # Ʊ¤¸¥»¥Ã¥·¥ç¥óID¤ò»ý¤Ä¥ì¥³¡¼¥É¤Ï¡¢Î¾Êý¤Î¥Æ¡¼¥Ö¥ë¤ËÊ£¿ô¤¢¤ê¤Þ¤¹¡£ # ¡ÖÃíʸ¡×¥Æ¡¼¥Ö¥ë¤Ç¡Ö¥»¥Ã¥·¥ç¥óID¡×¡Ö¾¦ÉʼïÊ̡פÎÁȹ礻¤Ï¥æ¥Ë¡¼¥¯¤Ç¡¢ # ¡ÖÃíʸ¾ÜºÙ¡×¥Æ¡¼¥Ö¥ë¤Ç¤Ï¡Ö¥»¥Ã¥·¥ç¥óID¡×¡Ö¾¦ÉÊ¥³¡¼¥É¡×¤ÎÁȹ礻¤Ë¥æ¥Ë¡¼¥¯¤Ç¤¹¡£ # # ·ë¹ç¤äÉûÌ䤤¹ç¤ï¤»¤ò»î¤·¤Æ¤ß¤Þ¤·¤¿¤¬¡¢¤¦¤Þ¤¤¤³¤ÈÃê½Ð¤Ç¤­¤Þ¤»¤ó¡£ # SQL¤Ç½ñ¤¯¤ä¤êÊý¤¬¤¢¤ì¤Ð¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # 'ºÇ¸å¤Ë¥«¡¼¥È¤ËÆþ¤ì¤¿»þ¹ï¤«¤é12»þ´Ö°Ê¾å·Ð²á¤·¤¿¥»¥Ã¥·¥ç¥óID¤ò¸¡º÷¤·¤Æ¡¢¤½¤Î¥»¥Ã¥·¥ç¥óID¤ò»ý¤Ä¥ì¥³¡¼¥É¤ò¡Ö¥«¡¼¥È¡×¡Ö¥«¡¼¥È¾ÜºÙ¡×¤ÎξÊý¤«¤éÁ´¤Æºï½ü¤¹¤ë' :- 'ºÇ¸å¤Ë¥«¡¼¥È¤ËÆþ¤ì¤¿»þ¹ï¤«¤é12»þ´Ö°Ê¾å·Ð²á¤·¤¿¥»¥Ã¥·¥ç¥óID¤ò¸¡º÷¤·¤Æ'(_¥»¥Ã¥·¥ç¥óID,R), '¤½¤Î¥»¥Ã¥·¥ç¥óID¤ò»ý¤Ä¥ì¥³¡¼¥É¤ò¡Ö¥«¡¼¥È¡×¡Ö¥«¡¼¥È¾ÜºÙ¡×¤ÎξÊý¤«¤éÁ´¤Æºï½ü¤¹¤ë'(_¥»¥Ã¥·¥ç¥óID), R = []. 'ºÇ¸å¤Ë¥«¡¼¥È¤ËÆþ¤ì¤¿»þ¹ï¤«¤é12»þ´Ö°Ê¾å·Ð²á¤·¤¿¥»¥Ã¥·¥ç¥óID¤ò¸¡º÷¤·¤Æ'(_¥»¥Ã¥·¥ç¥óID,R) :- findsetof(_¥»¥Ã¥·¥ç¥óID,( ¥«¡¼¥È(_¥»¥Ã¥·¥ç¥óID,_¾¦ÉʼïÊÌ,_¥«¡¼¥È¤ËÆþ¤ì¤¿»þ¹ï)), _¥»¥Ã¥·¥ç¥óID¤Ê¤é¤Ó), append(_,[_¥»¥Ã¥·¥ç¥óID|R],_¥»¥Ã¥·¥ç¥óID¤Ê¤é¤Ó), findmax(_¥«¡¼¥È¤ËÆþ¤ì¤¿»þ¹ï,( ¥«¡¼¥È(_¥»¥Ã¥·¥ç¥óID,_¾¦ÉʼïÊÌ,_¥«¡¼¥È¤ËÆþ¤ì¤¿»þ¹ï)), _ºÇ¸å¤Ë¥«¡¼¥È¤ËÆþ¤ì¤¿»þ¹ï), ºÇ¸å¤Ë¥«¡¼¥È¤ËÆþ¤ì¤¿»þ¹ï¤«¤é12»þ´Ö°Ê¾å·Ð²á¤·¤Æ¤¤¤ë(_¥»¥Ã¥·¥ç¥óID,_ºÇ¸å¤Ë¥«¡¼¥È¤ËÆþ¤ì¤¿»þ¹ï). '¤½¤Î¥»¥Ã¥·¥ç¥óID¤ò»ý¤Ä¥ì¥³¡¼¥É¤ò¡Ö¥«¡¼¥È¡×¡Ö¥«¡¼¥È¾ÜºÙ¡×¤ÎξÊý¤«¤éÁ´¤Æºï½ü¤¹¤ë'(_¥»¥Ã¥·¥ç¥óID) :- retractall(¥«¡¼¥È(_¥»¥Ã¥·¥ç¥óID,_,_)), retractall(¥«¡¼¥È¾ÜºÙ(_¥»¥Ã¥·¥ç¥óID,_)). ºÇ¸å¤Ë¥«¡¼¥È¤ËÆþ¤ì¤¿»þ¹ï¤«¤é12»þ´Ö°Ê¾å·Ð²á¤·¤Æ¤¤¤ë(_¥»¥Ã¥·¥ç¥óID,_ºÇ¸å¤Ë¥«¡¼¥È¤ËÆþ¤ì¤¿»þ¹ï) :- split(_ºÇ¸å¤ËÆþ¤ì¤¿»þ¹ï,['/',' ',':'],[_ǯ,_·î,_Æü,_»þ,_ʬ]), ¸½ºß¤Î»þ¹ï(_ǯ_1,_·î_1,_Æü_1,_»þ_1,_ʬ_1), '12»þ´Ö¸å¤ÎÆü»þ'(_ǯ,_·î,_Æü,_»þ,_ʬ,_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2), [_ǯ_1,_·î_1,_Æü_1,_»þ_1,_ʬ_1] @>= [_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2],!. '12»þ´Ö¸å¤ÎÆü»þ'(_ǯ,_·î,_Æü,_»þ,_ʬ,_ǯ,_·î,_Æü,_»þ_2,_ʬ) :- _»þ_2 is _»þ + 12, _»þ_2 < 24,!. '12»þ´Ö¸å¤ÎÆü»þ'(_ǯ,_·î,_Æü,_»þ,_ʬ,_ǯ,_·î,_Æü_2,_»þ_2,_ʬ) :- _»þ_1 is _»þ + 12, _»þ_2 is _»þ_1 - 24, _Æü_2 is _Æü + 1,!. retractall(P) :- retract(P), fail. retractall(_). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://toro.2ch.net/test/read.cgi/db/1316769778/319 # # tbl_rosen¡¡¡Ê±ØÌ¾¤ÈÈ÷¹Í¤Ï1:1¡Ë # Ï©Àþ̾¡¡¡¡±ØÌ¾¡¡¡¡È÷¹Í # ---------------------- # AÀþ¡¡¡¡¡¡i±Ø¡¡¡¡¡¡È÷¹Í1 # AÀþ¡¡¡¡¡¡j±Ø¡¡¡¡¡¡È÷¹Í2 # AÀþ¡¡¡¡¡¡k±Ø¡¡¡¡¡¡È÷¹Í3 # BÀþ¡¡¡¡¡¡k±Ø¡¡¡¡¡¡È÷¹Í3 # BÀþ¡¡¡¡¡¡l±Ø¡¡¡¡¡¡È÷¹Í4 # BÀþ¡¡¡¡¡¡m±Ø¡¡¡¡¡¡È÷¹Í5 # CÀþ¡¡¡¡¡¡n±Ø¡¡¡¡¡¡È÷¹Í6 # DÀþ¡¡¡¡¡¡k±Ø¡¡¡¡¡¡È÷¹Í3 # DÀþ¡¡¡¡¡¡o±Ø¡¡¡¡¡¡È÷¹Í7 # # tbl_shop # Ź̾¡¡¡¡ºÇ´ó±Ø # --------------- # XŹ¡¡¡¡¡¡j±Ø # XŹ¡¡¡¡¡¡m±Ø # XŹ¡¡¡¡¡¡o±Ø # YŹ¡¡¡¡¡¡l±Ø # ZŹ¡¡¡¡¡¡k±Ø # # tbl_rosen¤ÏŴƻϩÀþ¤È¤½¤Î±ØÌ¾¤Î¥Æ¡¼¥Ö¥ë¡Ê1Ï©Àþ¤ËÂФ·¤Æ1¡Án±Ø¤¢¤ë¡Ë¡¢ # tbl_shop¤Ï¡¢¥¹¡¼¥Ñ¡¼¤Î̾Á°¤ÈºÇ´ó±Ø¡Ê1ʤËÂФ·¤Æ0¡Án¤ÎºÇ´ó±Ø¤¬¤¢¤ë¡Ë # # ¡ã¤ä¤ê¤¿¤¤¤³¤È¡ä # ¡¦¤½¤ÎʤËÅ´Æ»¤Ç¹Ô¤¯¤³¤È¤¬½ÐÍè¤ë±Ø¤Î¥ê¥¹¥È¤òºîÀ®¤·¤¿¤¤ # ¡¦¤¢¤ëÆÃÄê¤ÎÏ©Àþ¤Ï½ü³°¡Ê¾å¤ÎÎã¤À¤È¡¢DÀþ¤ÏÂоݳ°¡Ë # ¡¦¾è¤ê´¹¤¨¤Ï¹Íθ¤·¤Ê¤¤¡£ # # ¢ªÎ㤨¤Ð¡¢ZʤÏk±Ø¤¬ºÇ´ó¤ê¤Ç¡¢k±Ø¤ÏAÀþ¡¢BÀþ¡¢DÀþ¤Î¾è¤êÆþ¤ì¡£DÀþ¤ò½ü³°¤¹¤ë¤È¡¢ # i¡¢j¡¢k¡¢l¡¢m±Ø¤«¤éÅż֡ʡÞÅÌÊâ¡Ë¤ÇZŹ¤Ë¹Ô¤±¤ë # # ¡ãºÇ½ªÅª¤Ë½ÐÎϤ·¤¿¤¤¥Æ¡¼¥Ö¥ë¡Ë # tbl_output # Ź̾¡¡¡¡ºÇ´ó±Ø¡¡¡¡È÷¹Í # ---------------------- # XŹ¡¡¡¡¡¡i±Ø¡¡¡¡¡¡È÷¹Í1 # XŹ¡¡¡¡¡¡j±Ø¡¡¡¡¡¡È÷¹Í2 # XŹ¡¡¡¡¡¡k±Ø¡¡¡¡¡¡È÷¹Í3 # XŹ¡¡¡¡¡¡l±Ø¡¡¡¡¡¡È÷¹Í4 # XŹ¡¡¡¡¡¡m±Ø¡¡¡¡¡¡È÷¹Í5 # YŹ¡¡¡¡¡¡k±Ø¡¡¡¡¡¡È÷¹Í3 # YŹ¡¡¡¡¡¡l±Ø¡¡¡¡¡¡È÷¹Í4 # YŹ¡¡¡¡¡¡m±Ø¡¡¡¡¡¡È÷¹Í5 # ZŹ¡¡¡¡¡¡i±Ø¡¡¡¡¡¡È÷¹Í1 # ZŹ¡¡¡¡¡¡j±Ø¡¡¡¡¡¡È÷¹Í2 # ZŹ¡¡¡¡¡¡k±Ø¡¡¡¡¡¡È÷¹Í3 # ZŹ¡¡¡¡¡¡l±Ø¡¡¡¡¡¡È÷¹Í4 # ZŹ¡¡¡¡¡¡m±Ø¡¡¡¡¡¡È÷¹Í5 # # # 2Ãʳ¬¤Ëʬ¤±¤ì¤Ð¡Ê±Ø¤Ç·ë¹ç¤·¤ÆÅ¹Ì¾¡¢Ï©Àþ̾¤Ç¥°¥ë¡¼¥×²½¡ÊDÀþ½ü³°¡Ë¤·¤¿ # ¥Æ¥ó¥Ý¥é¥ê¥Æ¡¼¥Ö¥ë¤ò¤Ä¤¯¤Ã¤Æ¡¢¤µ¤é¤Ëtbl_rosen¤È·ë¹ç¤¹¤ë¡ËÉáÄ̤ˤǤ­¤ë¤Î¤Ç¤¹¤¬¡¢ # ½ÐÍè¤ì¤Ð°ìȯ¤ÎSQL¤Ç½ÐÎϤ·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢SQL¼«ÂΤˤޤÀÆëÀ÷¤ß¤¬Çö¤¯¡¢ # ¤É¤Î¤è¤¦¤Ë½ñ¤¤¤ÆÎɤ¤¤Î¤«¤ï¤«¤ê¤Þ¤»¤ó # # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡ÊPostgreSQL8.4¤Ç¤¹¡Ë # # '¤½¤ÎʤËÅ´Æ»¤Ç¹Ô¤¯¤³¤È¤¬½ÐÍè¤ë±Ø¤Î¥ê¥¹¥È¤òºîÀ®¤·¤¿¤¤ ¡¦¤¢¤ëÆÃÄê¤ÎÏ©Àþ¤Ï½ü³°¡Ê¾å¤ÎÎã¤À¤È¡¢DÀþ¤ÏÂоݳ°¡Ë¡¦¾è¤ê´¹¤¨¤Ï¹Íθ¤·¤Ê¤¤¡£ '(_Ź̾,_½ü³°¤¹¤ëÏ©Àþ̾¤Ê¤é¤Ó,L) :- ʏõÊä(_Ź̾,R), ¤½¤ÎʤËÅ´Æ»¤Ç¹Ô¤¯¤³¤È¤¬¤Ç¤­¤ë±Ø¸õÊä(_Ź̾,_Ï©Àþ̾¤Ê¤é¤Ó), ¤½¤ÎʤËÅ´Æ»¤Ç¹Ô¤¯¤³¤È¤¬½ÐÍè¤ë±Ø¤Î¥ê¥¹¥È¤òºîÀ®¤¹¤ë(_Ź̾,_½ü³°¤¹¤ëÏ©Àþ̾¤Ê¤é¤Ó,_Ï©Àþ̾¤Ê¤é¤Ó), R = []. ʏõÊä(_Ź̾,R) :- findsetof(_Ź̾,( tbl_shop(_Ź̾,_,_)), _Ź̾¤Ê¤é¤Ó), append(_,[_Ź̾|R],_Ź̾¤Ê¤é¤Ó). ¤½¤ÎʤËÅ´Æ»¤Ç¹Ô¤¯¤³¤È¤¬¤Ç¤­¤ë±Ø¸õÊä(_Ź̾,_Ï©Àþ̾¤Ê¤é¤Ó) :- findsetof(_Ï©Àþ̾,( tbl_shop(_Ź̾,_ºÇ´ó±Ø,_È÷¹Í1), tbl_rosen(_Ï©Àþ̾,_ºÇ´ó±Ø,_È÷¹Í2)), _Ï©Àþ̾¤Ê¤é¤Ó). ¤½¤ÎʤËÅ´Æ»¤Ç¹Ô¤¯¤³¤È¤¬½ÐÍè¤ë±Ø¤Î¥ê¥¹¥È¤òºîÀ®¤¹¤ë(_Ź̾,_½ü³°¤¹¤ëÏ©Àþ̾¤Ê¤é¤Ó,_Ï©Àþ̾¤Ê¤é¤Ó) :- append(_,[_Ï©Àþ̾|R],_Ï©Àþ̾¤Ê¤é¤Ó), tbl_rosen(_Ï©Àþ̾,_±ØÌ¾,_È÷¹Í), \+((member(_Ï©Àþ̾,_½ü³°¤¹¤ëÏ©Àþ̾¤Ê¤é¤Ó)), assertz(tbl_output(_Ź̾,_±ØÌ¾,_È÷¹Í)), R = []. findsetof(A,B,L) :- findall(A,B,C), setof(A,member(A,C),L). findsetof(A,B) :- findall(A,B,C), setof(A,member(A,C),D), member(A,D). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1316769778/293 # # oracle¤Ç¤¹¡£ # # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ # ¥Æ¡¼¥Ö¥ëA # ¡¡ID ¡Ã¾õÂÖ # ¡¡100¡Ã¡û # ¡¡100¡Ã¡û # ¡¡101¡Ã¡û # ¡¡102¡Ã¡û # ¡¡104¡Ã¡û # ¡¡105¡Ã¡ß # ¥Æ¡¼¥Ö¥ëB # ¡¡ID ¡Ã¾õÂÖ # ¡¡100¡Ã¡û # ¡¡100¡Ã¡û # ¡¡100¡Ã¡û # ¡¡103¡Ã¡û # ¡¡105¡Ã¡û # ¡¡106¡Ã¡ß # # ¡¦Íߤ·¤¤·ë²Ì # # ¡¡ID ¡ÃA¤ÎCOUNT(ID)|B¤ÎCOUNT(ID) # ¡¡100¡Ã2 |3 # ¡¡101¡Ã1 |null # ¡¡102¡Ã1 |null # ¡¡104¡Ã1 |null # ¡¡105¡Ãnull |1 # # ¡¦ÀâÌÀ¡§ # A,B³Æ¥Æ¡¼¥Ö¥ë¤Î¾õÂÖ¤¬¡û¤Ç¤¢¤ë¤â¤Î¤òIDñ°Ì¤Ç¥«¥¦¥ó¥È¤·¡¢ # ¡¡A¤ÈB¤Î¥Æ¡¼¥Ö¥ë¤ò·ë¹ç¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢SQL1ËܤDzÄǽ¤Ç¤·¤ç¤¦¤«¡© # ¡¡·ë¹ç¤¹¤ëºÝ¡¢¤É¤Á¤é¤«¤Î¥Æ¡¼¥Ö¥ë¤Î¥«¥¦¥ó¥È¤¬1°Ê¾å¤Ç¤¢¤ì¤Ð½ÐÎϤ·¤¿¤¤¤Ç¤¹¡£ # # 'A,B³Æ¥Æ¡¼¥Ö¥ë¤Î¾õÂÖ¤¬¡û¤Ç¤¢¤ë¤â¤Î¤òIDñ°Ì¤Ç¥«¥¦¥ó¥È¤·¡¢A¤ÈB¤Î¥Æ¡¼¥Ö¥ë¤ò·ë¹ç¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢SQL1ËܤDzÄǽ¤Ç¤·¤ç¤¦¤«¡© ·ë¹ç¤¹¤ëºÝ¡¢¤É¤Á¤é¤«¤Î¥Æ¡¼¥Ö¥ë¤Î¥«¥¦¥ó¥È¤¬1°Ê¾å¤Ç¤¢¤ì¤Ð½ÐÎϤ·¤¿¤¤¤Ç¤¹¡£'(_ID,CountA,CountB) :- findsetof(_ID,( ¥Æ¡¼¥Ö¥ëA(_ID,¡û ); ¥Æ¡¼¥Ö¥ëB(_ID,¡û )), L), append(_,[_ID|_],L), count(¥Æ¡¼¥Ö¥ëA(_ID,¡û ),CountA), count(¥Æ¡¼¥Ö¥ëB(_ID,¡û ),CountB). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1320365280/822 # # [1] ¼ø¶Èñ¸µ¡§c¸À¸ì¥×¥í¥°¥é¥ß¥ó¥° # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§(1,2,3) (1,2,4)...¤È¤¤¤Ã¤¿¿ôÎó¤¬Â³¤¯¤Îlist.txt¤òÆÉ¤ß¹þ¤ß¡¢ # º¸¤Î¿ô»ú¤¬Æ±¤¸¤«¤Ä¿¿¤óÃæ¤Î¿ô»ú¤âƱ¤¸¤È¤­¡¢±¦¤Î¿ô»ú¤¬Â礭¤¤¤â¤Î¤òºï½ü¤·¡¢link2.txt¤Ë½ñ¤­¤³¤à¥×¥í¥°¥é¥à¤òºî¤ê¤Ê¤µ¤¤¡£ # ¡Ê¤³¤Î¾ì¹ç¡¢º¸¤¬1¤È1¤«¤Ä¿¿¤óÃæ¤¬2¤È2¤Ç±¦¤¬3¤È4¤Ê¤Î¤Ç4¤ÎÊý¤¬Â礭¤¤¤Î¤Ç(1,2,4)¤òºï½ü¤¹¤ë¡Ë # '(1,2,3) (1,2,4)...¤È¤¤¤Ã¤¿¿ôÎó¤¬Â³¤¯¤Îlist.txt¤òÆÉ¤ß¹þ¤ß¡¢º¸¤Î¿ô»ú¤¬Æ±¤¸¤«¤Ä¿¿¤óÃæ¤Î¿ô»ú¤âƱ¤¸¤È¤­¡¢±¦¤Î¿ô»ú¤¬Â礭¤¤¤â¤Î¤òºï½ü¤·¡¢link2.txt¤Ë½ñ¤­¤³¤à' :- get_chars('list.txt',Chars), 'º¸¤Î¿ô»ú¤¬Æ±¤¸¤«¤Ä¿¿¤óÃæ¤Î¿ô»ú¤âƱ¤¸¤È¤­¡¢±¦¤Î¿ô»ú¤¬Â礭¤¤¤â¤Î¤òºï½ü¤·¡¢link2.txt¤Ë½ñ¤­¤³¤à'(Chars). 'º¸¤Î¿ô»ú¤¬Æ±¤¸¤«¤Ä¿¿¤óÃæ¤Î¿ô»ú¤âƱ¤¸¤È¤­¡¢±¦¤Î¿ô»ú¤¬Â礭¤¤¤â¤Î¤òºï½ü¤·¡¢link2.txt¤Ë½ñ¤­¤³¤à'(Chars) :- ¤Ê¤é¤Ó¤ËÊÑ´¹(Chars,LL1), 'º¸¤Î¿ô»ú¤¬Æ±¤¸¤«¤Ä¿¿¤óÃæ¤Î¿ô»ú¤âƱ¤¸¤È¤­¡¢±¦¤Î¿ô»ú¤¬Â礭¤¤¤â¤Î¤òºï½ü¤·'(LL1,LL2), 'link2.txt¤Ë½ñ¤­¤³¤à'(LL2). ¤Ê¤é¤Ó¤ËÊÑ´¹([],[]). ¤Ê¤é¤Ó¤ËÊÑ´¹(['('|R1],[[A,B,C]|R2]) :- append(L0,[)|R3],R1), concat_atom(L0,S), atom_to_term(S,(A,B,C),_), ¤Ê¤é¤Ó¤ËÊÑ´¹(R3,R2),!. ¤Ê¤é¤Ó¤ËÊÑ´¹([_|R1],R2) :- ¤Ê¤é¤Ó¤ËÊÑ´¹(R1,R2). 'º¸¤Î¿ô»ú¤¬Æ±¤¸¤«¤Ä¿¿¤óÃæ¤Î¿ô»ú¤âƱ¤¸¤È¤­¡¢±¦¤Î¿ô»ú¤¬Â礭¤¤¤â¤Î¤òºï½ü¤·'(LL1,LL2) :- º¸¤Î¿ô»ú¤È¿¿¤óÃæ¤Î¿ô»ú¤Ç¥°¥ë¡¼¥×¤òºî¤ë(LL1,LL3), ¥°¥ë¡¼¥×¤ÎÃæ¤ÎºÇ¾®¤Ê¤é¤Ó¤ò½¯¤á¤ë(LL3,LL2). º¸¤Î¿ô»ú¤È¿¿¤óÃæ¤Î¿ô»ú¤Ç¥°¥ë¡¼¥×¤òºî¤ë(LL1,LL3) :- findsetof([A,B],( append(_,[[A,B,_]|_],LL1)), LL3). ¥°¥ë¡¼¥×¤ÎÃæ¤ÎºÇ¾®¤Ê¤é¤Ó¤ò½¯¤á¤ë(LL3,LL2) :- findall(L,( ¥°¥ë¡¼¥×¤ÎÃæ¤Ç¤ÎºÇ¾®¤Ê¤é¤Ó(LL3,L)), LL2). ¥°¥ë¡¼¥×¤ÎÃæ¤Ç¤ÎºÇ¾®¤Ê¤é¤Ó(LL3,L) :- append(_,[[A,B]|_],LL3), findmin([A,B,C],( append(_,[[A,B,C]|_],LL1)), L). 'link2.txt¤Ë½ñ¤­¤³¤à'(LL2) :- open('link2.txt',write,Outstream), 'link2.txt¤Ë½ñ¤­¤³¤à'(Outstream,LL2), close(Outstream). 'link2.txt¤Ë½ñ¤­¤³¤à'(Outstream,LL2) :- append(_,[[A,B,C]|R],LL2), writef(Outstream,'(%t,%t,%t) ',[A,B,C]), R = [], ºÇ¸å¤Ë²þ¹Ô(Outstream). ºÇ¸å¤Ë²þ¹Ô(Outstream) :- write(Outstream,'\n'). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1316769778/249 # # ¡¦MySQL5¤Ç¤¹ # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ # ¡¡ID¡Ã̾Á°¡Ã¥Ç¡¼¥¿ # ¡¡01¡ÃÎëÌÚ¡Ã0001 # ¡¡02¡Ãº´Æ£¡Ã0002 # ¡¡01¡ÃÎëÌÚ¡Ã0003 # ¡¦Íߤ·¤¤·ë²Ì # ¡¡ID¡Ã̾Á°¡Ã*¡ÃDATA1¡ÃDATA2 # ¡¡01¡ÃÎëÌÚ¡Ã2¡Ã0001 ¡Ã0003 # ¡¡02¡Ãº´Æ£¡Ã1¡Ã0002 ¡Ã # # ¡¦ÀâÌÀ¡§group by ¤È count(*) ¤ò»È¤¦¤È¢­¤Î¤è¤¦¤Ë¡¢¥°¥ë¡¼¥×²½¤µ¤ì¾Ã¤¨¤Æ¤·¤Þ¤¦Îó¤ÎÃͤò¡Ê¤³¤Î¾ì¹ç`0003`¤ÎÉôʬ¡Ë¡¢¢¬¤ß¤¿¤¯¡¢¹Ô¤Ë½ñ½Ð¤¹ÊýË¡¤Ï¤¢¤ê¤Þ¤¹¤«¡© # ¡¡ID¡Ã̾Á°¡Ã*¡Ã¥Ç¡¼¥¿ # ¡¡01¡ÃÎëÌÚ¡Ã2¡Ã0001 # ¡¡02¡Ãº´Æ£¡Ã1¡Ã0002 # # ¡¦Êä­¡§ID¤Ï1~1400¡¢count¿ô¤Ï1~97¡¢DATA¤Ï1~4000°Ì¤¢¤ê¤Þ¤¹¡£ # # Íߤ·¤¤·ë²Ì(_ÁÈ) :- Íߤ·¤¤·ë²Ì(_ÁÈ,_). Íߤ·¤¤·ë²Ì(_ÁÈ,_»Ä¤ê¸°¤Ê¤é¤Ó) :- ¸°¤Ê¤é¤Ó¤òºî¤ë(_¸°¤Ê¤é¤Ó), ¸°¥Ç¡¼¥¿¤Î¼ý½¸(_¸°¤Ê¤é¤Ó,_ÁÈ,_»Ä¤ê¸°¤Ê¤é¤Ó). Íߤ·¤¤·ë²Ì¤Îɽ¼¨ :- Íߤ·¤¤·ë²Ì(_ÁÈ,_»Ä¤ê¸°¤Ê¤é¤Ó), concat_atom(_ÁÈ,'|',_ÁÈɽ¼¨Ê¸»úÎó), writef('%t\n',[_ÁÈɽ¼¨Ê¸»úÎó]), _»Ä¤ê¸°¤Ê¤é¤Ó = []. ¸°¤Ê¤é¤Ó¤òºî¤ë(_¸°¤Ê¤é¤Ó) :- findsetof([_ID,_̾Á°],( ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿(_ID,_̾Á°,_¥Ç¡¼¥¿)), _¸°¤Ê¤é¤Ó). ¸°¥Ç¡¼¥¿¤Î¼ý½¸(_¸°¤Ê¤é¤Ó,_´û¤Ë½èÍý¤·¤¿¸°¤Ê¤é¤Ó,_ÁÈ,_»Ä¤ê¸°¤Ê¤é¤Ó) :- °ì¤Ä¸°¤ò¼è¤ê½Ð¤·(_¸°¤Ê¤é¤Ó,_´û¤Ë½èÍý¤·¤¿¸°¤Ê¤é¤Ó,_¸°,_»Ä¤ê¸°¤Ê¤é¤Ó), ¸°¤ËÂбþ¤¹¤ë¥Ç¡¼¥¿¤Ê¤é¤Ó(_¸°,_¸°¤ËÂбþ¤¹¤ë¥Ç¡¼¥¿¤Ê¤é¤Ó), ÁȤι½À®(_¸°,_¸°¤ËÂбþ¤¹¤ë¥Ç¡¼¥¿¤Ê¤é¤Ó,_ÁÈ). °ì¤Ä¸°¤ò¼è¤ê½Ð¤·(_¸°¤Ê¤é¤Ó,_´û¤Ë½èÍý¤·¤¿¸°¤Ê¤é¤Ó,_¸°,_»Ä¤ê¸°¤Ê¤é¤Ó) :- append(_´û¤Ë½èÍý¤·¤¿¸°¤Ê¤é¤Ó,[_¸°|_»Ä¤ê¸°¤Ê¤é¤Ó],_¸°¤Ê¤é¤Ó). ¸°¤ËÂбþ¤¹¤ë¥Ç¡¼¥¿¤Ê¤é¤Ó(_¸°,_¸°¤ËÂбþ¤¹¤ë¥Ç¡¼¥¿¤Ê¤é¤Ó) :- _¸° = [_ID,_̾Á°], findall(_¥Ç¡¼¥¿,( ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿(_ID,_̾Á°,_¥Ç¡¼¥¿)), _¸°¤ËÂбþ¤¹¤ë¥Ç¡¼¥¿¤Ê¤é¤Ó). ÁȤι½À®(_¸°,_¸°¤ËÂбþ¤¹¤ë¥Ç¡¼¥¿¤Ê¤é¤Ó,_ÁÈ) :- length(_¸°¤ËÂбþ¤¹¤ë¥Ç¡¼¥¿¤Ê¤é¤Ó,_ÅÙ¿ô), append(_¸°,[_ÅÙ¿ô|_¸°¤ËÂбþ¤¹¤ë¥Ç¡¼¥¿¤Ê¤é¤Ó],_ÁÈ). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1316769778/221 # # DBMS¤ÏMysql¤Î5.0.87¤Ç¤¹¡£ # # +------+------------+---------+----------+ # | id   | product_id | assy_id | parts_id | # +------+------------+---------+----------+ # |    1 |          1 |      12 |        1 | # |    2 |          1 |      12 |        2 | # |    3 |          1 |      12 |        3 | # |    4 |          1 |      12 |        3 | # |    5 |          1 |      12 |        5 | # +------+------------+---------+----------+ # # ¾åµ­¤Î¥Æ¡¼¥Ö¥ë¤Ç¡¢product_id¡¢assy_id¡¢parts_id¤¬Æ±¤¸¥ì¥³¡¼¥É¤¬2¹Ô°Ê¾åÍ­¤ë¤â¤Î¤òÃê½Ð¤·¤¿¤¤¤Î¤Ç¤¹¡£ # ¾åµ­¤ÎÎã¤À¤Èid¤¬3¤È4¤Î¥ì¥³¡¼¥É¤Ë¤Ê¤ê¤Þ¤¹¡£ # # # '¾åµ­¤Î¥Æ¡¼¥Ö¥ë¤Ç¡¢product_id¡¢assy_id¡¢parts_id¤¬Æ±¤¸¥ì¥³¡¼¥É¤¬2¹Ô°Ê¾åÍ­¤ë¤â¤Î¤òÃê½Ð¤¹¤ë'(_id) :- findsetof([_product_id,_assy_id,_parts_id],( ¥Æ¡¼¥Ö¥ë(_id,_product_id,_assy_id,_parts_id)), LL), append(_,[[_product_id,_assy_id,_parts_id]|_],LL), count(¥Æ¡¼¥Ö¥ë(_,_product_id,_assy_id,_parts_id),Count), Count >= 2. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1316769778/136 # # SQLserver¤Î¼ÁÌä¤Ç¤¹ # # °Ê²¼¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¤Þ¤¹ # *¤Ï¥æ¥Ë¡¼¥¯¥­¡¼¤Ç¤¹¡£ # # DATE* ID1* ID2* VALUE # ¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡² # # 200103 AAA 111 20 # 200103 AAA 112 10 # 200103 AAA 113 55 # 200103 AAA 121 60 # 200103 AAA 122 54 # 200103 AAA 123 44 # 200103 BBB 111 24 # 200103 BBB 113 43 # 200103 BBB 114 11 # 200103 BBB 121 11 # ¡¦ # ¡¦ # ¡¦ # 200104 AAA 111 20 # 200104 AAA 112 10 # 200104 AAA 114 5 # 200104 AAA 122 54 # 200104 AAA 123 4 # 200104 BBB 111 24 # 200104 BBB 113 43 # 200104 BBB 112 21 # 200104 BBB 121 11 # 200105 AAA 122 54 # 200105 BBB 113 43 # 200105 BBB 112 21 # 200106 AAA 123 4 # 200106 BBB 111 24 # 200106 BBB 112 21 # # ¤³¤ì¤òDATE=200103¤ÈDATE=200104¤À¤±¤È¤Ã¤Æ¤­¤Æ # ¤¤¤«¤Î¤è¤¦¤Ë³°Éô·ë¹ç¤·¤¿¤¤¤Î¤Ç¤¹¤¬¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¤Ç¤·¤ç¤¦¤«? # FULL JOIN¤òÍøÍѤ·¤¿¤Î¤Ç¤¹¤¬¤¦¤Þ¤¯¤¤¤­¤Þ¤»¤ó¡£ # # ID1 ID2 VALUE_201103 VALUE_201104 # _________________________________________ # AAA 111 20 20 # AAA 112 10 10 # AAA 113 55 NULL # AAA 114 NULL 5 # AAA 121 60 NULL # ¡¦ # ¡¦ # ¡¦ # # ¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£ # # '°Ê²¼¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¤Þ¤¹ *¤Ï¥æ¥Ë¡¼¥¯¥­¡¼¤Ç¤¹¡£ DATE* ID1* ID2* VALUE ¤³¤ì¤òDATE=200103¤ÈDATE=200104¤À¤±¤È¤Ã¤Æ¤­¤Æ³°Éô·ë¹ç¤¹¤ë'(_ID1,_ID2,_VALUE_200103,_VALUE_200104) :- findsetof([_ID1,_ID2],( ¥Æ¡¼¥Ö¥ë(_ÆüÉÕ,_ID1,_ID2,_), 'ÆüÉÕ¤¬200103¤«200104'(_ÆüÉÕ)), LL1), append(_,[[_ID1,_ID2]|_],LL1), 'ÆüÉÕ¤¬200103¤«200104¤ÎŬ¹çÁÈ'(_ID1,_ID2,_VALUE_200103,_VALUE_200104). 'ÆüÉÕ¤¬200103¤«200104'('200103'). 'ÆüÉÕ¤¬200103¤«200104'('200104'). 'ÆüÉÕ¤¬200103¤«200104¤ÎŬ¹çÁÈ'(_ID1,_ID2,_VALUE_200103,_VALUE_200104) :- ¥Æ¡¼¥Ö¥ë('200103',_ID1,_ID2,_VALUE_200103), ¥Æ¡¼¥Ö¥ë('200104',_ID1,_ID2,_VALUE_200104),!. 'ÆüÉÕ¤¬20103¤«200104¤ÎŬ¹çÁÈ'(_ID1,_ID2,'NULL',_VALUE_200104) :- \+(¥Æ¡¼¥Ö¥ë('200103',_ID1,_ID2,_)), ¥Æ¡¼¥Ö¥ë('200104',_ID1,_ID2,_VALUE_200104),!. 'ÆüÉÕ¤¬200103¤«200104¤ÎŬ¹çÁÈ'(_ID1,_ID2,_VALUE_200103,'NULL') :- ¥Æ¡¼¥Ö¥ë('200103',_ID1,_ID2,_VALUE_2001003), \+(¥Æ¡¼¥Ö¥ë('200104',_ID1,_ID2,_)),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/890 # # ½é¿´¼Ô¤Ç¤¹¤¬¼ºÎ餤¤¿¤·¤Þ¤¹¡£ # ID | DATA | TIME # --+------ # 1 | aaa | 01:02 # 2 | bbb | 03:42 # 1 | ccc | 02:11 # 3 | bbb | 01:32 # # ¤È¤¤¤¦¥Ç¡¼¥¿¤¬¤¢¤ë¤È¤·¤Þ¤·¤Æ # ¥¿¥¤¥à¤¬Áᤤ½ç¤ËʤÙÂØ¤¨¤Æ½ÅÊ£¤¹¤ëID¤ò½ü³°¡Ê¤³¤Î¾ì¹ç¤Ï£±¡Ë # ¤¹¤ë¤Ë¤Ï¤É¤Î¤è¤¦¤Ê¥¯¥¨¥ê¤ò½ñ¤±¤Ð¤è¤¤¤Î¤Ç¤·¤ç¤¦¤«¡© # # select * from table ORDER BY `time` DESC # ¤Ç¥¿¥¤¥à½ç¤Ë¤Ïʤ٤뤳¤È¤¬¤Ç¤­¤Æ¤¤¤Þ¤¹¤¬½ÅÊ£¤¹¤ë£É£Ä¡Ê¿Íʪ¡Ë # ¤ò½ü³°¤·¤¿¤¤¤Î¤Ç¤¹¡£ # # % findsetof/3 % findmin/3 % ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ '¥¿¥¤¥à¤¬Áᤤ½ç¤ËʤÙÂØ¤¨¤Æ½ÅÊ£¤¹¤ëID¤ò½ü³°¤¹¤ë'(_ID,_DATA,_TIME) :- findsetof(_ID,( ¥Æ¡¼¥Ö¥ë(_ID,_DATA,_TIME)), L1), append(_,[_ID|_],L1), findmax([_TIME,_ID,_DATA],( ¥Æ¡¼¥Ö¥ë(_ID,_DATA,_TIME)), [_TIME,_ID,_DATA]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/860 # # 09/01 ¤ê¤ó¤´ # 09/02 ¤ê¤ó¤´ # 09/02 ¤ß¤«¤ó # 09/03 ¤ê¤ó¤´ # 09/03 ¤ß¤«¤ó # 09/03 ¥Ð¥Ê¥Ê # ¡¦¡¦¡¦ # # ¤³¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤«¤é¤ê¤ó¤´¤È¤ß¤«¤ó¤È¥Ð¥Ê¥Ê¤Î£³¤Ä # Á´¤Æ¤¬¤¢¤ëÆüÉÕ¤ò¼è¤ê½Ð¤¹¹½Ê¸¤Ï¤É¤¦¤¹¤ì¤Ð½ÐÍè¤Þ¤¹¤«¡© # # '09/01 ¤ê¤ó¤´\n09/02 ¤ê¤ó¤´\n09/02 ¤ß¤«¤ó\n09/03 ¤ê¤ó¤´\n09/03 ¤ß¤«¤ó\n09/03 ¥Ð¥Ê¥Ê\n¡¦¡¦¡¦ ¤³¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤«¤é¤ê¤ó¤´¤È¤ß¤«¤ó¤È¥Ð¥Ê¥Ê¤Î£³¤ÄÁ´¤Æ¤¬¤¢¤ëÆüÉÕ¤ò¼è¤ê½Ð¤¹'(_ÆüÉÕ) :- findsetof(_ÆüÉÕ,( ¥Æ¡¼¥Ö¥ë(_ÆüÉÕ,_)), L1), '¤ê¤ó¤´¤È¤ß¤«¤ó¤È¥Ð¥Ê¥Ê¤Î£³¤ÄÁ´¤Æ¤¬¤¢¤ëÆüÉÕ'(L1,_ÆüÉÕ). '¤ê¤ó¤´¤È¤ß¤«¤ó¤È¥Ð¥Ê¥Ê¤Î£³¤ÄÁ´¤Æ¤¬¤¢¤ë'([_ÆüÉÕ|R],_ÆüÉÕ) :- '¤ê¤ó¤´¤È¤ß¤«¤ó¤È¥Ð¥Ê¥Ê¤Î£³¤ÄÁ´¤Æ¤¬¤¢¤ë'(_ÆüÉÕ). '¤ê¤ó¤´¤È¤ß¤«¤ó¤È¥Ð¥Ê¥Ê¤Î£³¤ÄÁ´¤Æ¤¬¤¢¤ë'([_|R],_ÆüÉÕ) :- '¤ê¤ó¤´¤È¤ß¤«¤ó¤È¥Ð¥Ê¥Ê¤Î£³¤ÄÁ´¤Æ¤¬¤¢¤ë'(R,_ÆüÉÕ). '¤ê¤ó¤´¤È¤ß¤«¤ó¤È¥Ð¥Ê¥Ê¤Î£³¤ÄÁ´¤Æ¤¬¤¢¤ë'(_ÆüÉÕ) :- ¥Æ¡¼¥Ö¥ë(_ÆüÉÕ,¤ê¤ó¤´), ¥Æ¡¼¥Ö¥ë(_ÆüÉÕ,¤ß¤«¤ó), ¥Æ¡¼¥Ö¥ë(_ÆüÉÕ,¥Ð¥Ê¥Ê),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/846 # # ¤¢¤ë¥«¥é¥à¤Î½ÅÊ£¤Î¤ß¤ò³°¤·¤¿¤â¤Î¤òSELECT¤¹¤ë¤Ë¤Ï¤É¤¦¤È¤ì¤Ð¤¤¤¤¤Ç¤¹¤«¡© # # kaden¥Æ¡¼¥Ö¥ë # id item price # 1 ŽÊŽßŽ¿ŽºŽÝ 100000 # 2 ŽÊŽßŽ¿ŽºŽÝ 80000 # 3 ŽÃŽÞ޼ŽÞ޶ŽÒ 50000 # 4 ŽÌŽßŽØŽÝŽÀް 20000 # 5 ŽÃŽÞŽÝŽÜ 6000 # # ·ë²Ì # 1 ŽÊŽßŽ¿ŽºŽÝ 100000 # 3 ŽÃŽÞ޼ŽÞ޶ŽÒ 50000 # 4 ŽÌŽßŽØŽÝŽÀް 20000 # 5 ŽÃŽÞŽÝŽÜ 6000 # # ¥Ñ¥½¥³¥ó¤ò¶èÊ̤¹¤ë¤Î¤Ïid¤Èprice¤¬¤¢¤ê¤Þ¤¹¤¬id¤¬¼ã¤¤Êý¤Ç¤ª´ê¤¤¤·¤Þ¤¹ # # '¤¢¤ë¥«¥é¥à¤Î½ÅÊ£¤Î¤ß¤ò³°¤·¤¿¤â¤Î¤òSELECT¤¹¤ë' :- findsetof(_item,( kaden(_id,_item,_price)), L), append(_,[_item|_],L), Âè°ì²ò¤Î¤ß¼èÆÀ(_id,_item,_price). Âè°ì²ò¤Î¤ß¼èÆÀ(_id,_item,_price) :- kaden(_id,_item,_price),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/839 # # MySQL¤Ç¤¹¡£ # ¥Æ¡¼¥Ö¥ë¤«¤éºÇ½é¥³¥é¥àA¤ÇʤӤ«¤¨¤Æ¡¢¤½¤ÎÃæ¤Î¾å°Ì£³£°¸Ä¤ò # ¥³¥é¥àB¤ÇʤÓÂØ¤¨¤¿·ë²Ì¤¬¤Û¤·¤¤»þ¤Ï¤É¤¦½ñ¤±¤Ð¤¤¤¤¤Î¤Ç¤·¤ç¤¦¤« # # SELECT * FROMT T ORDER BY A,B # ¤À¤È¡¢A¤ÎÃæ¤ÎƱ¤¸ÃͤÎʪ¤·¤«B¤Ç¥½¡¼¥È¤µ¤ì¤Ê¤¤¤ß¤¿¤¤¤Ç¤¹¡£ # # '¥Æ¡¼¥Ö¥ë¤«¤éºÇ½é¥³¥é¥àA¤ÇʤӤ«¤¨¤Æ¡¢¤½¤ÎÃæ¤Î¾å°Ì£³£°¸Ä¤ò¥³¥é¥àB¤ÇʤÓÂØ¤¨¤¿·ë²Ì¤¬¤Û¤·¤¤'(_A,_B) :- length(L0,30), findsetof([_A,_B],( 'T'(_A,_B)), L1), sort(L1,L2), append(L0,_,L2), findall([_B,_A],member([_A,_B],L0),L3), sort(L3,L4), member([_B,_A],L4). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/804 # # °Ê²¼¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ëTAB¤¬¤¢¤ê¤Þ¤¹¡£ # # A¡¡B¡¡C # 1 40 35 # 2 80 50 # 3 10 5 # 4 20 15 # 5 70 60 # # ÎóA¤Ç¾º½ç¤Ë¥½¡¼¥È¤·¤Æ°ìÈÖ¾®¤µ¤¤Ãͤò»ý¤Ä¹Ô¤ò´ð½à¤Ë¡¢ # °Ê²¼¤Î·×»»¼°¤ÇÎóD¤òµá¤á¤¿¤¤¤Ç¤¹¡£ # # D¡Ên+1¡Ë= C¡Ên¡Ë¡ß D¡Ên¡Ë¡à B¡Ên+1¡Ë # n¤ÏÎó£Á¤Î½ç°Ì¤Çµá¤á¤¿¤¤·ë²Ì¤Ï¡¢ # # A¡¡B¡¡C D # 1 40 35 1 # 2 80 50 0.4375 # 3 10 5 2.1875 # 4 20 15 0.546875 # 5 70 60 0.1171875 # # ¤ß¤¿¤¤¤Ê´¶¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£ # # ¤³¤ì¤Ã¤ÆSQL¤Ç²Äǽ¤Ç¤·¤ç¤¦¤«¡© # DBMS¤ÏOracle11gR2¤Ç¤¹¡£ # # # 'ÎóA¤Ç¾º½ç¤Ë¥½¡¼¥È¤·¤Æ°ìÈÖ¾®¤µ¤¤Ãͤò»ý¤Ä¹Ô¤ò´ð½à¤Ë¡¢°Ê²¼¤Î·×»»¼°¤ÇÎóD¤òµá¤á¤¿¤¤¤Ç¤¹¡£ D¡Ên+1¡Ë= C¡Ên¡Ë¡ß D¡Ên¡Ë¡à B¡Ên+1¡Ë'(L) :- findsetof([_A,_B,_C],'TAB'(_A,_B,_C),LL), LL = [[_A,_B,_C]|R], '°Ê²¼¤Î·×»»¼°¤ÇÎóD¤òµá¤á¤ë¡£ D¡Ên+1¡Ë= C¡Ên¡Ë¡ß D¡Ên¡Ë¡à B¡Ên+1¡Ë'(R,[_A,_B,_C,1],L). '°Ê²¼¤Î·×»»¼°¤ÇÎóD¤òµá¤á¤ë¡£ D¡Ên+1¡Ë= C¡Ên¡Ë¡ß D¡Ên¡Ë¡à B¡Ên+1¡Ë'(R,L,L). '°Ê²¼¤Î·×»»¼°¤ÇÎóD¤òµá¤á¤ë¡£ D¡Ên+1¡Ë= C¡Ên¡Ë¡ß D¡Ên¡Ë¡à B¡Ên+1¡Ë'([[_A_1,_B_1,_C_1]|R],[_A,_B,_C,_D],L) :- _D_1 is _C * _D / _B_1, '°Ê²¼¤Î·×»»¼°¤ÇÎóD¤òµá¤á¤ë¡£ D¡Ên+1¡Ë= C¡Ên¡Ë¡ß D¡Ên¡Ë¡à B¡Ên+1¡Ë'(R,[_A_1,_B_1,_C_1,_D_1],L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/788 # # prd1¥Æ¡¼¥Ö¥ë # # p_id¡¡¾¦ÉÊID # p_name¡¡¾¦ÉÊ̾Á° # ---- # prd2¥Æ¡¼¥Ö¥ë # # p_id¡¡¾¦ÉÊID # p_date¡¡À½Â¤Ç¯ # ----- # prd3¥Æ¡¼¥Ö¥ë # # p_id # p_date # p_frame¡¡¼ïÎࣱ # ---- # prd4¥Æ¡¼¥Ö¥ë # # p_frame # p_pattern¡¡¼ïÎࣲ¡Ê0Ëô¤Ï1¤¬Æþ¤ë¡Ë # ---- # prd1¤Î¾¦ÉÊID¤Èprd2¤Î¾¦ÉÊID¤Ï1ÂÐN¤Î´Ø·¸¤Ç¤¹¡£ # prd1¤ÎÁ´¾¦ÉʤËÂФ·¤Æ # prd1¤ËÂФ¹¤ëprd2¤òÃê½Ð¡Êinner join ¤Ç¤â where ¤Ç¤â¡Ë¤·¤¿°Ê²¼¤Î¥Æ¡¼¥Ö¥ë # # p_id p_date # 1¡¡2001-01-01 # 1¡¡2001-01-02 # 2¡¡2001-01-01 # 2¡¡2001-01-02 # 2¡¡2001-01-03 # # ¤ËÂФ·¤Æ¡¢prd3¤Èprd4¤Ë¤è¤Ã¤ÆÃê½Ð¤·¤¿¥Æ¡¼¥Ö¥ë¤ò·ë¹ç¤¹¤ë¤È¤­¤Ë # ¾¦ÉÊID¤ÈÀ½Â¤Ç¯¤ò¥­¡¼¤Ë·ë¹ç¤·¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£ # # prd3¤Ï¤Á¤Ê¤ß¤Ë # # p_id¡¡p_date¡¡p_frame # 1¡¡2001-01-01¡¡1 # 1¡¡2001-01-02¡¡2 # 1¡¡2001-01-03¡¡3 # 1¡¡2001-01-04¡¡4 # 3¡¡2001-01-01¡¡5 # # prd4¤Ï¡¢ # # p_frame¡¡p_pattern # 1¡¡0 # 2¡¡1 # 3¡¡0 # 4¡¡1 # 5¡¡1 # 6¡¡1 # # p_id¡¡p_date¡¡SUM(p_pattern_0)¡¡SUM(p_pattern_1)¡¡¤È¤¤¤¦¥Æ¡¼¥Ö¥ë¤òÃê½Ð¤·¤¿¤¤¤Ç¤¹¡£ # # 1¡¡2001-01-01¡¡5¡¡2 # 1¡¡2001-01-02¡¡3¡¡NULL # 2¡¡2001-01-01¡¡NULL¡¡NULL # # ¤È¤¤¤Ã¤¿´¶¤¸¤Ç¤¹¡£prd1¤Èprd2¤ò·ë¹ç¤·¤¿¥â¥Î¤Ë¡¢ prd3¤Èprd4¤ò·ë¹ç¤·¤¿¤¤¤Î¤Ç¤¹¡£ # 'prd3¤Èprd4¤Ë¤è¤Ã¤ÆÃê½Ð¤·¤¿¥Æ¡¼¥Ö¥ë¤ò·ë¹ç¤¹¤ë¤È¤­¤Ë¾¦ÉÊID¤ÈÀ½Â¤Ç¯¤ò¥­¡¼¤Ë·ë¹ç¤¹¤ë'(_p_id,_p_date,_sum_p_pattern_0,_sum_p_pattern_1) :- findsetof([_p_id,_p_date],( prd1(_p_id), prd2(_p_id,_p_date)), L1), append(_,[[_p_id,_p_date]|_],L1), prd3(_p_id,_p_date,_p_frame), findsum([_p_pattern_0,_p_pattern_1],( prd4(_p_frame,_p_pattern), p_pattern_x(_p_pattern,_p_pattern_0,_p_pattern_1)), [_sum_p_pattern_0,_sum_p_pattern_1]). p_pattern_x(0,1,0). p_pattern_x(1,0,1). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/730 # # MySQL¤Ç¡¢°Ê²¼¤Î¤è¤¦¤Ê£²¤Ä¤Î¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¡¢parent_id¤Ïparent¤Î³°Éô¥­¡¼¤È¤Ê¤Ã¤Æ¤Þ¤¹¡£ # # parent # id p_value # 1 AAA # 2 BBB # # children # parent_id c_value # 1 aaa # 1 bbb # 1 ccc # 2 ddd # 2 eee # # ¤³¤ì¤ò # # parent_id p_value c_value # 1 AAA (aaa, bbb, ccc) # 2 BBB (ddd, eee) # # ¤Î¤è¤¦¤Ê·Á¤Ç¼è¤ê½Ð¤¹¤³¤È¤Ï¤Ç¤­¤Þ¤¹¤«¡© # GROUP BY¤Çparent_id¤Ç¤Þ¤È¤á¤ë¤³¤È¤Ï¤Ç¤­¤¿¤Î¤Ç¤¹¤¬¡¢c_value¤ò¤Þ¤È¤á¤Æ¼è¤ê½Ð¤¹ÊýË¡¤¬¤ï¤«¤ê¤Þ¤»¤ó¡£ # # ·ë¹ç¾ðÊó¤ò°ì¹Ô¤ËÅ»¤á¤ë(_parent_id,_p_value,_»Ò¶¡¤Î̾Á°¤Ê¤é¤Ó) :- findsetof(_parent_id,( parent(_parent_id,_)), _¿Æ¤Î̾Á°¤Ê¤é¤Ó), append(_,[_parent_id|R],_¿Æ¤Î̾Á°¤Ê¤é¤Ó), parent(_parent_id,_p_value), findall(c_value,( children(_parent_id,_c_value)), _»Ò¶¡¤Î̾Á°¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/602 # # SQL Server2008¡¡°Ê²¼¤Î¥Æ¡¼¥Ö¥ë¡ÖÃÍÃʡפ«¤é # # id | ¿©ÉÊ¡¡|¡¡ÃÍÃʹç·× |¡¡ÃÍÃÊ£± |¡¡ÃÍÃÊ£² |¡¡ÃÍÃÊ£³ # ¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡² # # 1¡¡|¡¡Æù¡¡|¡¡¡¡500¡¡¡¡|¡¡¡¡500 | # 1¡¡|¡¡µû¡¡|¡¡¡¡300¡¡¡¡|¡¡¡¡¡¡¡¡¡¡|¡¡300 # 1¡¡|¡¡Íñ¡¡|¡¡¡¡200 | 100 | 50 | 50 # 2 | Æù¡¡|¡¡¡¡350 | 250 | 100 # 2 | µû¡¡|¡¡¡¡400 | 150 | 250 # # # °Ê²¼¤Î·ë²Ì¤òÆÀ¤Æ¡¢¿·¤·¤¯¥Æ¡¼¥Ö¥ë¡ÖÃÍÃʹç·×¡×¤òºî¤ê¤¿¤¤¤Ç¤¹¡£ # # # id |ÃÍÃÊid¹ç·×|ÆùÃÍÃʹç·×|ÆùÃÍÃÊ£±|ÆùÃÍÃÊ£²|ÆùÃÍÃÊ£³|µûÃÍÃʹç·×|µûÃÍÃÊ£±|µûÃÍÃÊ£²|µûÃÍÃÊ£³|ÍñÃÍÃʹç·×|ÍñÃÍÃÊ£±|ÍñÃÍÃÊ£²|ÍñÃÍÃÊ£³| # _________________________________________________________________________________________________________________________________ # 1 | 1000 | 500 | 500 | | | 300 | | 300 | | 200 | 100 | 50 | 50 | # 2 | 750 | 350 | 250 | 100 | | 400 | 150 | 250 # # # Æù¡¢µû¡¢Íñ¤Ï¤½¤ì¤¾¤ì¤Îid¤Ë°ì¹Ô¤·¤«¤Ê¤¯¡¢ # Æù¤Èµû¤Ïɬ¤º¤¢¤ê¤Þ¤¹¤¬¡¢Íñ¤Ï¤¢¤ë¤È¤Ï¸Â¤ê¤Þ¤»¤ó¡£ # ¥·¥ó¥×¥ë½Ä²£ÌäÂê¤Ï¤ï¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢Ê£»¨¤Ë¤Ê¤ë¤È°ìµó¤Ë¤ï¤«¤é¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£¡£ # ¤´¶µ¼¨¤ª´ê¤¤Ãפ·¤Þ¤¹¡£ # '¡ÖÃÍÃʹç·×¡×¤òºî¤ë' :- findsetof(id,ÃÍÃÊ(_id,_,_,_,_,_),_id¤Ê¤é¤Ó), append(_,[_id|R],_id¤Ê¤é¤Ó), ¿©ÉʤÎÃÍÃʤòÆÀ¤ë(_id,Æù,_ÆùÃÍÃʹç·×,_ÆùÃÍÃÊ£±,_ÆùÃÍÃÊ£²,_ÆùÃÍÃÊ£³), ¿©ÉʤÎÃÍÃʤòÆÀ¤ë(_id,µû,_µûÃÍÃʹç·×,_µûÃÍÃÊ£±,_µûÃÍÃÊ£²,_µûÃÍÃÊ£³), ¿©ÉʤÎÃÍÃʤòÆÀ¤ë(_id,Íñ,_ÍñÃÍÃʹç·×,_ÍñÃÍÃÊ£±,_ÍñÃÍÃÊ£²,_ÍñÃÍÃÊ£³), _ÃÍÃÊid¹ç·× is _ÆùÃÍÃʹç·× + _µûÃÍÃʹç·× + _ÍñÃÍÃʹç·×, assertz(ÃÍÃʹç·×(_id,_ÃÍÃÊid¹ç·×,_ÆùÃÍÃʹç·×,_ÆùÃÍÃÊ£±,_ÆùÃÍÃÊ£²,_ÆùÃÍÃÊ£³,_µûÃÍÃʹç·×,_µûÃÍÃÊ£±,_µûÃÍÃÊ£²,_µûÃÍÃÊ£³,_ÍñÃÍÃʹç·×,_ÍñÃÍÃÊ£±,_ÍñÃÍÃÊ£²,_ÍñÃÍÃÊ£³)), R = []. ¿©ÉʤÎÃÍÃʤòÆÀ¤ë(_id,_¿©ÉÊ,_ÃÍÃʹç·×,_ÃÍÃÊ£±,_ÃÍÃÊ£²,_ÃÍÃÊ£³) :- ÃÍÃÊ(_id,_¿©ÉÊ,_ÃÍÃʹç·×,_ÃÍÃÊ£±,_ÃÍÃÊ£²,_ÃÍÃÊ£³),!. ¿©ÉʤÎÃÍÃʤòÆÀ¤ë(_id,_¿©ÉÊ,0,0,0,0). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/597 # # ²¼µ­¤Î¤è¤¦¤Ê¥Ç¡¼¥¿¤¬¤¢¤ë¤È¤­¡¢Åêɼ²ó¿ô¤¬3°Ê¾å¤Ë³ºÅö¤¹¤ëÅêɼ¼Ô¤Î # ¥ì¥³¡¼¥É¤òÁ´¤Æ½ü¤¤¤¿·ë²Ì¤¬Íߤ·¤¤¤Î¤Ç¤¹¤¬¤É¤Î¤è¤¦¤Ë¤·¤¿¤é¤è¤¤¤Ç¤·¤ç¤¦¤«¡© # 595¤Ç¤¹¤¬¤¹¤ß¤Þ¤»¤ó½ÅÍפʥ«¥é¥à¤ò¾Ê¤¤¤Æ¤¤¤Þ¤·¤¿¡£ # ¤½¤ÎÅêɼ¼Ô¤ò¾Ê¤¯¤Î¤Ï¤½¤Î¥¢¥ó¥±¡¼¥ÈNo¤À¤±¤Ë¸ÂÄꤷ¤¿¤¤¤Î¤Ç¤¹ # # ¥¢¥ó¥±¡¼¥ÈNo ,Åêɼ¼Ô ,Åêɼ²ó¿ô, ï¤ËÅêɼ¤·¤¿¤« # ------------------------------- # 1¡¡¡¡¡¡, A¡¡¡¡¡¡, 1¡¡¡¡¡¡, D # 1¡¡¡¡¡¡, B¡¡¡¡¡¡, 1¡¡¡¡¡¡, E # 1¡¡¡¡¡¡, B¡¡¡¡¡¡, 2¡¡¡¡¡¡, F # 1¡¡¡¡¡¡, B¡¡¡¡¡¡, 3¡¡¡¡¡¡, G # 1¡¡¡¡¡¡, C¡¡¡¡¡¡, 2¡¡¡¡¡¡, H # 1¡¡¡¡¡¡, C¡¡¡¡¡¡, 2¡¡¡¡¡¡, I # 2¡¡¡¡¡¡, A¡¡¡¡¡¡, 1¡¡¡¡¡¡, D # 2¡¡¡¡¡¡, B¡¡¡¡¡¡, 1¡¡¡¡¡¡, E # 2¡¡¡¡¡¡, C¡¡¡¡¡¡, 1¡¡¡¡¡¡, H # 2¡¡¡¡¡¡, C¡¡¡¡¡¡, 2¡¡¡¡¡¡, I # 2¡¡¡¡¡¡, C¡¡¡¡¡¡, 3¡¡¡¡¡¡, J # # Íߤ·¤¤¥Ç¡¼¥¿ # 1¡¡¡¡¡¡, A¡¡¡¡¡¡, 1¡¡¡¡¡¡, D # 1¡¡¡¡¡¡, C¡¡¡¡¡¡, 2¡¡¡¡¡¡, H # 1¡¡¡¡¡¡, C¡¡¡¡¡¡, 2¡¡¡¡¡¡, I # 2¡¡¡¡¡¡, A¡¡¡¡¡¡, 1¡¡¡¡¡¡, D # 2¡¡¡¡¡¡, B¡¡¡¡¡¡, 1¡¡¡¡¡¡, E # # 'Åêɼ²ó¿ô¤¬3°Ê¾å¤Ë³ºÅö¤¹¤ëÅêɼ¼Ô¤Î¥ì¥³¡¼¥É¤òÁ´¤Æ½ü¤¤¤¿·ë²Ì'(_¥¢¥ó¥±¡¼¥ÈNo,_Åêɼ¼Ô,_Åêɼ²ó¿ô,_ï¤ËÅêɼ¤·¤¿¤«) :- findsetof([_¥¢¥ó¥±¡¼¥ÈNo,_Åêɼ¼Ô],( ¥Ç¡¼¥¿(_¥¢¥ó¥±¡¼¥ÈNo,_Åêɼ¼Ô,_Åêɼ²ó¿ô,_ï¤ËÅêɼ¤·¤¿¤«), _Åêɼ²ó¿ô >= 3), L), ¥Ç¡¼¥¿(_¥¢¥ó¥±¡¼¥ÈNo,_Åêɼ¼Ô,_Åêɼ²ó¿ô,_ï¤ËÅêɼ¤·¤¿¤«), \+(member([_¥¢¥ó¥±¡¼¥ÈNo,_Åêɼ¼Ô],L)). findsetof(A,B,L) :- findall(A,B,C), setof(A,member(A,C),L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/595 # # ²¼µ­¤Î¤è¤¦¤Ê¥Ç¡¼¥¿¤¬¤¢¤ë¤È¤­¡¢Åêɼ²ó¿ô¤¬3°Ê¾å¤Ë³ºÅö¤¹¤ëÅêɼ¼Ô¤Î # ¥ì¥³¡¼¥É¤òÁ´¤Æ½ü¤¤¤¿·ë²Ì¤¬Íߤ·¤¤¤Î¤Ç¤¹¤¬¤É¤Î¤è¤¦¤Ë¤·¤¿¤é¤è¤¤¤Ç¤·¤ç¤¦¤«¡© # # Åêɼ¼Ô ,Åêɼ²ó¿ô, ï¤ËÅêɼ¤·¤¿¤« # ------------------------------- # A¡¡¡¡¡¡, 1¡¡¡¡¡¡, D # B¡¡¡¡¡¡, 1¡¡¡¡¡¡, E # B¡¡¡¡¡¡, 2¡¡¡¡¡¡, F # B¡¡¡¡¡¡, 3¡¡¡¡¡¡, G # C¡¡¡¡¡¡, 2¡¡¡¡¡¡, H # C¡¡¡¡¡¡, 2¡¡¡¡¡¡, I # # ¡Ê3°Ê¾å¤Ë³ºÅö¤¹¤ëÅêɼ¼ÔB¤Î¥ì¥³¡¼¥É¤ò½ü¤¯¡Ë # A¡¡¡¡¡¡, 1¡¡¡¡¡¡, D # C¡¡¡¡¡¡, 2¡¡¡¡¡¡, H # C¡¡¡¡¡¡, 2¡¡¡¡¡¡, I # # 'Åêɼ²ó¿ô¤¬3°Ê¾å¤Ë³ºÅö¤¹¤ëÅêɼ¼Ô¤Î¥ì¥³¡¼¥É¤òÁ´¤Æ½ü¤¤¤¿·ë²Ì'(_Åêɼ¼Ô,_Åêɼ²ó¿ô,_ï¤ËÅêɼ¤·¤¿¤«) :- findsetof(_Åêɼ¼Ô,( ¥Ç¡¼¥¿(_Åêɼ¼Ô,_Åêɼ²ó¿ô,_ï¤ËÅêɼ¤·¤¿¤«), _Åêɼ²ó¿ô >= 3), L), ¥Ç¡¼¥¿(_Åêɼ¼Ô,_Åêɼ²ó¿ô,_ï¤ËÅêɼ¤·¤¿¤«), \+(member(_Åêɼ¼Ô,L)). findsetof(A,B,L) :- findall(A,B,C), setof(A,member(A,C),L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/558 # # create table aaa ( # id integer not null, # test text not null, # test2 integer not null, # unique (id,test) # ); # # create table bbb ( # id integer not null, # test text not null, # test2 integer not null # unique (id,test) # ); # # aaa # id test test2 # 10 aaa 100 # 10 bbb 200 # 10 ccc 100 # 10 ddd 100 # # bbb # id test test2 # 10 aaa 200 # 10 bbb 100 # # ¤Û¤·¤¤·ë²Ì # id test test2 # 10 aaa 200 # 10 bbb 100 # 10 ccc 100 # 10 ddd 100 # aaa(10,111,200). aaa(10,bbb,100). bbb(10,aaa,200). bbb(10,bbb,100). bbb(10,ccc,100). bbb(10,ddd,100). ¤Û¤·¤¤·ë²Ì(_id,_test,_test2) :- findall([_id,_test,_test2],( aaa(_id,_test,_test2)), LL1), findall([_id,_test,_test2],( bbb(_id,_test,_test2)), LL2), append(LL1,LL2,LL), findsetof([_id,_test],( append(_,[[_id,_test]|_],LL)), LL3), findmax([_test2,_id,_test],( append(_,[[_id,_test]|_],LL3), append(_,[[_id,_test,_test2]|_],LL)), LL4), append(_,[[_test2,_id,_test]|_],LL4). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/429 # # ¡¦DB2 v9.5 # ¡¦¥Æ¡¼¥Ö¥ë¤ÎÆâÍÆ # ¢£¥Æ¡¼¥Ö¥ëÀ®ÀÓ # ̾Á°,¶µ²Ê¥³¡¼¥É,ÅÀ¿ô # ========== # A¤µ¤ó,1,50 # A¤µ¤ó,2,70 # B¤µ¤ó,3,80 # # ¢£¥Æ¡¼¥Ö¥ë¶µ²Ê # ¶µ²Ê¥³¡¼¥É,¶µ²Ê̾ # ========== # 1,¿ô³Ø # 2,¹ñ¸ì # 3,¼Ò²ñ # # ¡¦Íߤ·¤¤·ë²Ì # A¤µ¤ó,¿ô³Ø,50 # A¤µ¤ó,¹ñ¸ì,70 # A¤µ¤ó,¼Ò²ñ,0 # B¤µ¤ó,¿ô³Ø,0 # B¤µ¤ó,¹ñ¸ì,0 # B¤µ¤ó,¼Ò²ñ,80 # # ¡¦ÀâÌÀ # ¤É¤¦·ë¹ç¤·¤¿¤éÌÜŪ¤Î·ë²Ì¤¬ÆÀ¤é¤ì¤ë¤«¤ï¤«¤ê¤Þ¤»¤ó¡£ # ¤ª¤·¤¨¤Æ¤¯¤À¤µ¤¤¤Þ¤¹¤Ç¤·¤ç¤¦¤«¡£ # À®ÀÓ('A¤µ¤ó','1',50). À®ÀÓ('A¤µ¤ó','2',70). À®ÀÓ('B¤µ¤ó','3',80). ¶µ²Ê('1',¿ô³Ø). ¶µ²Ê('2',¹ñ¸ì). ¶µ²Ê('3',¼Ò²ñ). À®ÀÓ¤Îɽ¼¨ :- 'À®ÀӤȶµ²Ê¤Î·ë¹ç¡£¤¿¤À¤·¡¢À®ÀÓ¤¬¤Ê¤¤¶µ²Ê¤ÎÅÀ¿ô¤Ï0¤È¤¹¤ë'(_¶µ²ÊÀ®ÀӤʤé¤Ó), append(_,[[[_̾Á°,_¶µ²Ê̾,_ÅÀ¿ô]|R],_¶µ²ÊÀ®ÀӤʤé¤Ó), writef('%t,%t,%t\n',[_̾Á°,_¶µ²Ê̾,_ÅÀ¿ô]), R = []. 'À®ÀӤȶµ²Ê¤Î·ë¹ç¡£¤¿¤À¤·¡¢À®ÀÓ¤¬¤Ê¤¤¶µ²Ê¤ÎÅÀ¿ô¤Ï0¤È¤¹¤ë'(_¶µ²ÊÀ®ÀӤʤé¤Ó) :- findsetof(_̾Á°,À®ÀÓ(_̾Á°,_,_),_̾Á°¤Ê¤é¤Ó), findall([_̾Á°,_¶µ²Ê̾,_ÅÀ¿ô],( append(_,[_̾Á°|R],_̾Á°¤Ê¤é¤Ó), ¶µ²Ê(_¶µ²Ê¥³¡¼¥É,_¶µ²Ê̾), ²ÊÌÜÀ®ÀÓ¤òÆÀ¤ë(_̾Á°,_¶µ²Ê¥³¡¼¥É,_ÅÀ¿ô)), _¶µ²ÊÀ®ÀӤʤé¤Ó). ²ÊÌÜÀ®ÀÓ¤òÆÀ¤ë(_̾Á°,_¶µ²Ê¥³¡¼¥É,_ÅÀ¿ô) :- ¥Æ¡¼¥Ö¥ëÀ®ÀÓ(_̾Á°,_¶µ²Ê¥³¡¼¥É,_ÅÀ¿ô),!. ²ÊÌÜÀ®ÀÓ¤òÆÀ¤ë(_,_,0). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1301067486/220 # # ¡üÀµµ¬É½¸½¤Î»ÈÍѴĶ­ # grep¤È¤«egrep¤È¤« # # ¡ü¸¡º÷¤«ÃÖ´¹¤«¡© # ¸¡º÷ # # ¡üÀâÌÀ # a,n¤Î2ʸ»ú¤Î¤ß¤¬´Þ¤Þ¤ì¤ë¹Ô¤ò¸¡º÷¤·¤¿¤¤ # # ¡üÂоݥǡ¼¥¿ # aaa # ann # nana # anana # sin # anans # # ¡ü´õ˾¤¹¤ë·ë²Ì # ¾å4¤Ä¤Î¤ß½ÐÎÏ # ²¼Æó¤Ä¤Ï°ú¤Ã¤«¤«¤é¤Ê¤¤ # # 'a,n¤Î2ʸ»ú¤Î¤ß¤¬´Þ¤Þ¤ì¤ë¹Ô¤ò¸¡º÷¤·¤¿¤¤'(_¹Ô¤Ê¤é¤Ó,_¹Ô) :- append(_,[_¹Ô|_],_¹Ô¤Ê¤é¤Ó), findsetof(_ʸ»ú,sub_atom(_¹Ô,_,1,_,_ʸ»ú),[a,n]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/402 # # ²¼µ­¤Î¤è¤¦¤Ê¥æ¡¼¥¶¡¼¤ËÂФ¹¤ë¼èÆÀ¥Ý¥¤¥ó¥È¤È¡¢¾ÃÈñ¤·¤¿¥Ý¥¤¥ó¥È¤Î¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¡¢ # ¤½¤ì¤é¤Î¹ç·×¤ò³Æ¥æ¡¼¥¶¡¼Ëè¤Ë¤Þ¤È¤á¤¿¤¤¤Î¤Ç¤¹¤¬¡¢¤É¤¦¤·¤¿¤é¤¤¤¤¤Ç¤·¤ç¤¦¤«¡© # # [¼èÆÀ¥Æ¡¼¥Ö¥ë t1] # id | user_id | point # --+-------+----- # 1 | 1¡¡¡¡¡¡ | 30 # 2 | 2¡¡¡¡¡¡ | 10 # 3 | 3¡¡¡¡¡¡ | 50 # 4 | 1¡¡¡¡¡¡ | 20 # 5 | 2¡¡¡¡¡¡ | 10 # 6 | 3¡¡¡¡¡¡ | 50 # # [¾ÃÈñ¥Æ¡¼¥Ö¥ë t2] # id | user_id | used_point # --+-------+----- # 1 | 1¡¡¡¡¡¡ | -10 # 2 | 2¡¡¡¡¡¡ | -10 # 3 | 4¡¡¡¡¡¡ | -50 # 4 | 1¡¡¡¡¡¡ | -20 # 5 | 4¡¡¡¡¡¡ | -10 # # ¡ãÍߤ·¤¤·ë²Ì¡ä # user_id | point # -------+----- # 1¡¡¡¡¡¡ | 20 # 2¡¡¡¡¡¡ | 10 # 3¡¡¡¡¡¡ | 100 # 4¡¡¡¡¡¡ | -60 # # # DBMS¤ÏMySQL¤Ç¤¹¡£ # ¤ª´ê¤¤¤·¤Þ¤¹m(_ _)m # # t1(1,1,30). t1(2,2,10). t1(3,3,50). t1(4,1,20). t1(5,2,10). t1(6,3,50). t2(1,1,-10). t2(2,2,-10). t2(3,4,-50). t2(4,1,-20). t2(5,4,-10). '²¼µ­¤Î¤è¤¦¤Ê¥æ¡¼¥¶¡¼¤ËÂФ¹¤ë¼èÆÀ¥Ý¥¤¥ó¥È¤È¡¢¾ÃÈñ¤·¤¿¥Ý¥¤¥ó¥È¤Î¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¡¢¤½¤ì¤é¤Î¹ç·×¤ò³Æ¥æ¡¼¥¶¡¼Ëè¤Ë¤Þ¤È¤á¤¿¤¤'(_¥æ¡¼¥¶¤´¤È¤Î¹ç·×) :- ¥æ¡¼¥¶¤ò¼èÆÀ(L), findall([_user_id,_¹ç·×],( append(_,[_user_id|_],L), t1¥Æ¡¼¥Ö¥ë¤Î¹ç·×(_user_id,_¹ç·×1), t2¥Æ¡¼¥Ö¥ë¤Î¹ç·×(_user_id,_¹ç·×2), _¹ç·× is _¹ç·×1 - _¹ç·×2), _¥æ¡¼¥¶¤´¤È¤Î¹ç·×). ¥æ¡¼¥¶¤ò¼èÆÀ(L) :- findsetof(_user_,t1(_user_id,_),L1), findsetof(_user_,t2(_user_id,_),L2), Ͻ¸¹ç(L1,L2,L). t1¥Æ¡¼¥Ö¥ë¤Î¹ç·×(_user_id,_¹ç·×) :- findsum(_point,t1(_user_id,_point),_¹ç·×). t2¥Æ¡¼¥Ö¥ë¤Î¹ç·×(_user_id,_¹ç·×) :- findsum(_userpoint,t2(_user_id,_userpoint),_¹ç·×). Ͻ¸¹ç(_½¸¹ç1,_½¸¹ç2,_Ͻ¸¹ç) :- append(_½¸¹ç1,_½¸¹ç2,_¤Ê¤é¤Ó3), findall(_Í×ÁÇ,( append(L0,[_Í×ÁÇ|_],_¤Ê¤é¤Ó3), \+(append(_,[_Í×ÁÇ|_],L0))), _Ͻ¸¹ç) . % »²¾È % findsum/3 http://nojiriko.asia/prolog/findsum.html % findsetof/3 http://nojiriko.asia/prolog/findsetof.html % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/324 # # NAME FRUIT NUM # # TARO banana 10 # TARO orange 4 # TARO tomato 3 # TARO grape 2 # TARO apple 1 # TARO melon 1 # TARO mango 1 # HANAKO tomato 30 # HANAKO orange 21 # HANAKO apple 2 # HANAKO banana 1 # GEN mango 12 # GEN grape 6 # GEN orange 4 # GEN banana 1 # GEN apple 1 # # # ¤È¤¤¤¦¥Æ¡¼¥Ö¥ë¤Ç¡¢³Æ¿Í´Ö¤Î»ý¤Ä²Ìʪ¤Î¤¦¤Á¾å°Ì3¼ïÎà¤ò¼èÆÀ¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢ # ¤É¤¦¤¹¤ì¤Ð¤è¤í¤·¤¤¤Ç¤·¤ç¤¦¤«¡© # # Íߤ·¤¤·ë²Ì # NAME FRUIT NUM # # TARO banana 10 # TARO orange 4 # TARO tomato 3 # HANAKO tomato 30 # HANAKO orange 21 # HANAKO apple 2 # GEN mango 12 # GEN grape 6 # GEN orange 4 # # # SQLserver2008¤Ç¤¹¡£¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£ # # ¥Æ¡¼¥Ö¥ë¤Ç¡¢³Æ¿Í´Ö¤Î»ý¤Ä²Ìʪ¤Î¤¦¤Á¾å°Ì3¼ïÎà¤ò¼èÆÀ¤·¤¿¤¤ :- findsetof(_̾Á°,¥Æ¡¼¥Ö¥ë(_̾Á°,_²Ìʪ,_¿ôÎÌ),LL1), append(_,[_̾Á°|R],LL1), findall([_̾Á°,_¿ôÎÌ,_²Ìʪ],( ¥Æ¡¼¥Ö¥ë(_̾Á°,_²Ìʪ,_¿ôÎÌ)), LL2), Â礭¤¤½ç¤Ë(LL2,LL3), ¾å°Ì3°Ì(LL3,[_̾Á°,_²Ìʪ,_¿ôÎÌ]), writef('%t %t %t\n',[_̾Á°,_²Ìʪ,_¿ôÎÌ]), R = []. Â礭¤¤½ç¤Ë(L1,L2) :- sort(L1,L3), reverse(L3,L2),!. ¾å°Ì3°Ì(L,[_̾Á°,_²Ìʪ,_¿ôÎÌ]) :- append(L0,[[_̾Á°,_¿ôÎÌ,_²Ìʪ]|_],L), length(L0,Length), Length =< 2. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/300 # # ¾å¼ê¤¯¤¤¤«¤Ê¤¤¤Î¤Ç¼ÁÌ䤵¤»¤Æ¤¯¤À¤µ¤¤¡£ # ACCESS2007¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ # ǯ¥Õ¥£¡¼¥ë¥É¤È·î¥Õ¥£¡¼¥ë¥É¤òÍѤ¤¤Æ¡ÖǯÅ١פηï¿ô¤òÃê½Ð¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢ # °Ê²¼¤Î¥¯¥¨¥ê¤Ç¤Ï·îÉôʬ¤¬´³¾Ä¤·¤Æ¤«¾å¼ê¤¯Ãê½Ð½ÐÍè¤Þ¤»¤ó¡£ # # 22ǯ4·î¡Á23ǯ3·î¡¡¤È¤¤¤Ã¤¿·ë²Ì¤ò½Ð¤·¤¿¤¤¤Î¤Ç¤¹¤¬¤É¤¦¤·¤¿¤é¤è¤¤¤Ç¤·¤ç¤¦¤«¡© # # SELECT ǯ FROM Table1 # WHERE (ǯ>21 AND ·î>3) AND (ǯ<23 AND ·î<4) # # 'ǯ¥Õ¥£¡¼¥ë¥É¤È·î¥Õ¥£¡¼¥ë¥É¤òÍѤ¤¤Æ¡ÖǯÅ١פηï¿ô¤òÃê½Ð¤·¤¿¤¤'(_¥Æ¡¼¥Ö¥ë,L) :- ¥Æ¡¼¥Ö¥ë¹½Â¤(_¥Æ¡¼¥Ö¥ë,ǯ,M), ¥Æ¡¼¥Ö¥ë¹½Â¤(_¥Æ¡¼¥Ö¥ë,·î,N), findmax(U,¥Æ¡¼¥Ö¥ë¹½Â¤(_¥Æ¡¼¥Ö¥ë,_,U),Max), length(L1,Max), nth1(M,L1,_ǯ), nth1(N,L1,_·î), P =.. [_¥Æ¡¼¥Ö¥ë|L1], findall(_ǯÅÙ,( P, ǯÅ٤Υ롼¥ë(_ǯ,_·î,_ǯÅÙ)), _ǯÅ٤ʤé¤Ó), findsetof(_ǯÅÙ,( append(_,[_ǯÅÙ|_],_ǯÅ٤ʤé¤Ó), L2), findall([_ǯÅÙ,_ÅÙ¿ô],( append(_,[_ǯÅÙ|_],L2), count(append(_,[_ǯÅÙ|_],_ǯÅ٤ʤé¤Ó),_ÅÙ¿ô)), L). ǯÅ٤Υ롼¥ë(_ǯ,_·î,_ǯÅÙ) :- _·î >= 4, _ǯ = _ǯÅÙ,!. ǯÅ٤Υ롼¥ë(_ǯ,_·î,_ǯÅÙ) :- _·î < 4, _ǯÅÙ is _ǯ - 1,!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/288 # # sqlite v3.6.23.1¤Ç¡¢ # comment (text) ,postedtime (int)¡¡¤È¤¤¤¦·Á¼°¤Ë¤Æ·Ç¼¨ÈĤòºî¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ # ¡ÖºÇ¿·¤Î£µ¥³¥á¥ó¥È¡¢Ã¢¤·¡¢24»þ´Ö°ÊÆâ¤ÎÅê¹Æ¤Ë¤Ä¤¤¤Æ¤ÏºÇÂç50¸Ä¤Þ¤Ç¡×¤òµá¤á¤¿¤¯¤Æ # # SELECT comment FROM mm ORDER BY postedtime DESC LIMIT 50 # UNION # SELECT comment FROM mm WHERE postedtime > $nowtime - 3600*24 ORDER BY ptime DESC LIMIT 50 # # ¤È¤·¤Æ¤ß¤¿¤Î¤Ç¤¹¤¬¡Ê$nowtime¤Ë¤Ïº£¤Î»þ´Ö¤òÆþ¤ì¤Æ¤Þ¤¹¡Ë¡¢ # 1st ORDER BY term does not match in the result set ¤È¤¤¤¦¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£ # ¡ÊunionÁ°¸å¤Î¥¯¥¨¥ê¤½¤ì¤¾¤ìñÆÈ¤Ç¤Ï¥¨¥é¡¼¤Ï½Ð¤Þ¤»¤ó¡Ë # # Íߤ·¤¤·ë²Ì¤òµá¤á¤ë¤Ë¤Ï¤É¤Î¤è¤¦¤Ë½ñ¤±¤Ð¤¤¤¤¤Î¤Ç¤·¤ç¤¦¤«¡© # # 'ºÇ¿·¤Î£µ¥³¥á¥ó¥È¡¢Ã¢¤·¡¢24»þ´Ö°ÊÆâ¤ÎÅê¹Æ¤Ë¤Ä¤¤¤Æ¤ÏºÇÂç50¸Ä¤Þ¤Ç'(_¥Æ¡¼¥Ö¥ë,_¸½ºß¤Î»þ¹ï,P) :- split(_¸½ºß¤Î»þ¹ï,[' ','/','-',':','.'],[_ǯ,_·î,_Æü,_»þ,_ʬ,_ÉÃ,_]), ¥Æ¡¼¥Ö¥ë¹½Â¤(_¥Æ¡¼¥Ö¥ë,»þ¹ï,N), findmax(M,¥Æ¡¼¥Ö¥ë¹½Â¤(_¥Æ¡¼¥Ö¥ë,_,M),Max), length(L1,Max), nth1(N,L1,_»þ¹ï), P =.. [_¥Æ¡¼¥Ö¥ë|L1], ÁªÂò(P,_ǯ,_·î,_Æü,_»þ,_ʬ,_ÉÃ,L), append(_,[_»þ¹ï|_],L), call(P). ÁªÂò(P,_ǯ,_·î,_Æü,_»þ,_ʬ,_ÉÃ,L) :- findsetof(_»þ¹ï,( call(P), »þ¹ï¤¬24»þ´Ö°ÊÆâ(_ǯ,_·î,_Æü,_»þ,_ʬ,_ÉÃ,_»þ¹ï)), L1), Í×ÁÇÀÚ¤ê¼è¤ê(L1,L),!. ÁªÂò(P,_ǯ,_·î,_Æü,_»þ,_ʬ,_ÉÃ,L) :- findall(_»þ¹ï,( call(P), »þ¹ï¤¬24»þ´Ö°ÊÆâ(_ǯ,_·î,_Æü,_»þ,_ʬ,_ÉÃ,_»þ¹ï)), L1), À°Îó(L1,L2), Í×ÁÇÀÚ¤ê¼è¤ê(L2,L),!. ÁªÂò(P,_,_,_,_,_,_,L) :- findall(_»þ¹ï,( call(P)), L1), À°Îó(L1,L2), length(L,5), append(_,L,L2),!. Í×ÁÇÀÚ¤ê¼è¤ê(L1,L) :- length(L1,Length), Length >= 50, length(L,50), append(_,L,L1),!. Í×ÁÇÀÚ¤ê¼è¤ê(L1,L1) :- length(L1,Length), Length >= 5, length < 50,!. »þ¹ï¤¬24»þ´Ö°ÊÆâ(_ǯ,12,31,_»þ,_ʬ,_ÉÃ,_»þ¹ï) :- split(_»þ¹ï,['/','-',':','.'],[_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2,_ÉÃ_2,_]), _ǯ_1 is _ǯ + 1, [_ǯ_1,1,1,_»þ,_ʬ,_ÉÃ,_»þ¹ï] @>= [_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2,_ÉÃ_2,_]),!. »þ¹ï¤¬24»þ´Ö°ÊÆâ(_ǯ,2,29,_»þ,_ʬ,_ÉÃ,_»þ¹ï) :- ¤¦¤ë¤¦Ç¯(_ǯ), [_ǯ,3,1,_»þ,_ʬ,_ÉÃ,_»þ¹ï] @>= [_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2,_ÉÃ_2,_]),!. »þ¹ï¤¬24»þ´Ö°ÊÆâ(_ǯ,2,28,_»þ,_ʬ,_ÉÃ,_»þ¹ï) :- \+(¤¦¤ë¤¦Ç¯(_ǯ)), [_ǯ,3,1,_»þ,_ʬ,_ÉÃ,_»þ¹ï] @>= [_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2,_ÉÃ_2,_]),!. »þ¹ï¤¬24»þ´Ö°ÊÆâ(_ǯ,_·î,30,_»þ,_ʬ,_ÉÃ,_»þ¹ï) :- append(_,[_·î|_],[4,6,9,11]), _·î_1 is _·î + 1, [_ǯ,_·î_1,1,_»þ,_ʬ,_ÉÃ,_»þ¹ï] @>= [_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2,_ÉÃ_2,_]),!. »þ¹ï¤¬24»þ´Ö°ÊÆâ(_ǯ,_·î,31,_»þ,_ʬ,_ÉÃ,_»þ¹ï) :- append(_,[_·î|_],[1,3,5,7,8,10]), _·î_1 is _·î + 1, [_ǯ,_·î_1,1,_»þ,_ʬ,_ÉÃ,_»þ¹ï] @>= [_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2,_ÉÃ_2,_]),!. »þ¹ï¤¬24»þ´Ö°ÊÆâ(_ǯ,_·î,_Æü,_»þ,_ʬ,_ÉÃ,_»þ¹ï) :- split(_»þ¹ï,['/','-',':','.'],[_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2,_ÉÃ_2,_]), _Æü_1 is _Æü + 1, [_ǯ,_·î,_Æü_1,_»þ,_ʬ,_ÉÃ,_»þ¹ï] @>= [_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2,_ÉÃ_2,_]),!. ¤¦¤ë¤¦Ç¯(_ǯʸ»úÎó) :- atom(_ǯʸ»úÎó), atom_to_term(_ǯʸ»úÎó,_ǯÀ°¿ô,_), !, ¤¦¤ë¤¦Ç¯(_ǯÀ°¿ô) . ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100, !, fail. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- \+(0 is _ǯ mod 4), fail. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1294641578/215 # # one_side the_other value # 30 31 23 # 31 30 23 # 4 31 20 # 31 6 20 # 6 31 20 # 31 4 20 # 19 30 19 # 30 19 19 # 7 27 17 # 35 18 17 # ¡§ ¡§ ¡§ # # one_side¤Èthe_other¤Î¥Ú¥¢¤È¤·¤ÆÇ§¼±¤·¤Æ # µÕ½ç¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤À¤±¤Î¥Ú¥¢¤ÏÅ»¤á¤ëÊýË¡¤ò¶µ¤¨¤Æ²¼¤µ¤¤ # 'one_side¤Èthe_other¤Î¥Ú¥¢¤È¤·¤ÆÇ§¼±¤·¤ÆµÕ½ç¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤À¤±¤Î¥Ú¥¢¤ÏÅ»¤á¤ëÊýË¡¤ò¶µ¤¨¤Æ²¼¤µ¤¤'(_¥Æ¡¼¥Ö¥ë̾,_µÕ½ç¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥Ú¥¢) :- findall([_one_side,_the_other],( 'one_side¤Èthe_other¤Î¥Ú¥¢¤È¤·¤ÆÇ§¼±¤·¤ÆµÕ½ç¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤À¤±¤Î¥Ú¥¢¤ÏÅ»¤á¤ëÊýË¡¤ò¶µ¤¨¤Æ²¼¤µ¤¤'(_¥Æ¡¼¥Ö¥ë̾,_one_side,_the_other,L2)), _µÕ½ç¤Ë¤Ê¤Ã¤Æ¤¤¤ë¥Ú¥¢). 'one_side¤Èthe_other¤Î¥Ú¥¢¤È¤·¤ÆÇ§¼±¤·¤ÆµÕ½ç¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤À¤±¤Î¥Ú¥¢¤ÏÅ»¤á¤ëÊýË¡¤ò¶µ¤¨¤Æ²¼¤µ¤¤'(_¥Æ¡¼¥Ö¥ë̾,_one_side,_the_other,L2) :- P =.. [_¥Æ¡¼¥Ö¥ë̾,_one_side,_the_other,_value], findsetof([_one_side,_the_other],( call(P)), L1), append(_,[[_one_side,_the_other]|_],L1), findall(_value,( call(P)), L2), ¥ËÍ×Áǰʾå¤ÎµÕ½ç¤Ê¤é¤Ó(L2). ¥ËÍ×Áǰʾå¤ÎµÕ½ç¤Ê¤é¤Ó([A,B]) :- A @> B,!. ¥ËÍ×Áǰʾå¤ÎµÕ½ç¤Ê¤é¤Ó([A,B|R1]) :- A @> B, ¥ËÍ×Áǰʾå¤ÎµÕ½ç¤Ê¤é¤Ó([B|R]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1301553333/680 # # 1]¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2]ÌäÂêʸ:¼«¸Ê»²¾È·¿¹½Â¤ÂΤòÍѤ¤¤Æ¡¢°Ê²¼¤Î½èÍý¤ò¤¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # # Àµ¤Î¿ôÆþÎÏ¢ªÏ¢·ë¥ê¥¹¥È¤òé¤ê¡¢½é¤á¤ÆÆþÎϤµ¤ì¤¿¿ô¤Ê¤é¤Ð¥«¥¦¥ó¥¿¤ò1Áý¤ä¤¹¡£Æ±¤¸¿ô¤¬Â³¤±¤ÆÆþÎϤµ¤ì¤¿¤é¤½¤Î¿ô¤Î¥«¥¦¥ó¥¿¤ò¤µ¤é¤Ë1Áý¤ä¤¹¡£ # Éé¤Î¿ôÆþÎÏ¢ªÉé¤Î¿ô¤ÎÀäÂÐÃÍ¤ÈÆ±¤¸²ó¿ôÆþÎϤµ¤ì¤¿¿ô¤Î¥Ç¡¼¥¿¤òºï½ü(Î㤨¤Ð¡¢-3¤òÆþÎϤ·¡¢¤½¤ì°ÊÁ°¤Ë14¤¬3²óÆþÎϤµ¤ì¤Æ¤¤¤¿¤é¡¢¤½¤ì¤òºï½ü) # 0¤òÆþÎÏ¢ª¥Ç¡¼¥¿¤ò½ÐÎϤ·¤Æ½ªÎ»¡£ # # ¥Ç¡¼¥¿½ÐÎÏ¢ª½ªÎ»¤Îή¤ì¤Ï¤É¤¦¤Ë¤«¤Ê¤ê¤Þ¤·¤¿¤¬¡¢¤½¤ì°Ê³°¤Ç¾å¼ê¤¤È¯ÁÛ¤¬»×¤¤¤Ä¤­¤Þ¤»¤ó¡£ # # http://ime.nu/codepad.org/yayuXIUa # # ´ü¸Â¤ÏÌÀÆü¤Þ¤Ç¤Ç¤¹¡£ # # Àµ¤Î¿ôÆþÎϸåÏ¢·ë¥ê¥¹¥È¤òé¤ê¡¢½é¤á¤ÆÆþÎϤµ¤ì¤¿¿ô¤Ê¤é¤Ð¥«¥¦¥ó¥¿¤ò1Áý¤ä¤¹¡£Éé¤Î¿ôÆþÎϸåÉé¤Î¿ô¤ÎÀäÂÐÃÍ¤ÈÆ±¤¸²ó¿ôÆþÎϤµ¤ì¤¿¿ô¤Î¥Ç¡¼¥¿¤òºï½ü0¤òÆþÎϸå¥Ç¡¼¥¿¤ò½ÐÎϤ·¤Æ½ªÎ» :- ¿ôÆþÎÏ(_¿ô), Ï¢·ë¥ê¥¹¥È¤È¥«¥¦¥ó¥¿¤ò¹¹¿·¤·¤Æ¤¤¤¯(_¿ô,[],0,_Ï¢·ë¥ê¥¹¥È,_¥«¥¦¥ó¥¿), ¥Ç¡¼¥¿¤ò½ÐÎϤ·¤Æ½ªÎ»(_Ï¢·ë¥ê¥¹¥È,_¥«¥¦¥ó¥¿),!. Ï¢·ë¥ê¥¹¥È¤È¥«¥¦¥ó¥¿¤ò¹¹¿·¤·¤Æ¤¤¤¯(_¿ô,L_1,_¥«¥¦¥ó¥¿_1,L,_¥«¥¦¥ó¥¿) :- Éé¤Î¿ô¤¬ÆþÎϤµ¤ì¤¿¤éÉé¤Î¿ô¤ÎÀäÂÐÃÍ¤ÈÆ±¤¸²ó¿ôÆþÎϤµ¤ì¤¿¿ô¤Î¥Ç¡¼¥¿¤òºï½ü¤·¤ÆÏ¢·ë¥ê¥¹¥È¤ÎºÇ¸å¤Ë0¤ò²Ã¤¨¤ë(_¿ô,L_1,_¥«¥¦¥ó¥¿_1,L,_¥«¥¦¥ó¥¿),!. Ï¢·ë¥ê¥¹¥È¤È¥«¥¦¥ó¥¿¤ò¹¹¿·¤·¤Æ¤¤¤¯(_¿ô,L_1,_¥«¥¦¥ó¥¿_1,L,_¥«¥¦¥ó¥¿) :- ½é¤á¤ÆÆþÎϤµ¤ì¤¿¿ô¤Ê¤é¤Ð¥«¥¦¥ó¥¿¤ò1Áý¤ä¤¹(_¿ô,L_1,_¥«¥¦¥ó¥¿_1,L_2,_¥«¥¦¥ó¥¿_2), ¿ôÆþÎÏ(_¿ô_2), Ï¢·ë¥ê¥¹¥È¤È¥«¥¦¥ó¥¿¤ò¹¹¿·¤·¤Æ¤¤¤¯(_¿ô_2,L_2,_¥«¥¦¥ó¥¿_3,L,_¥«¥¦¥ó¥¿). Ï¢·ë¥ê¥¹¥È¤È¥«¥¦¥ó¥¿¤ò¹¹¿·¤·¤Æ¤¤¤¯(_¿ô,L_1,_¥«¥¦¥ó¥¿_1,L,_¥«¥¦¥ó¥¿) :- \+(½é¤á¤ÆÆþÎϤµ¤ì¤¿¿ô¤Ê¤é¤Ð¥«¥¦¥ó¥¿¤ò1Áý¤ä¤¹(_¿ô,L_1,_¥«¥¦¥ó¥¿_1,L,_¥«¥¦¥ó¥¿)), ¿ôÆþÎÏ(_¿ô_2), Ï¢·ë¥ê¥¹¥È¤ÎºÇ¸å¤Ë¿ô¤òÄɲÃ(_¿ô,L_1,L_2), Ï¢·ë¥ê¥¹¥È¤È¥«¥¦¥ó¥¿¤ò¹¹¿·¤·¤Æ¤¤¤¯(_¿ô_2,L_2,_¥«¥¦¥ó¥¿_1,L,_¥«¥¦¥ó¥¿). ¥Ç¡¼¥¿¤ò½ÐÎϤ·¤Æ½ªÎ»(_Ï¢·ë¥ê¥¹¥È,_¥«¥¦¥ó¥¿) :- writef('¼Â¹Ô¸å¤ÎÏ¢·ë¥ê¥¹¥È¤Ï %t ¤Ç¤¹\n¤½¤Î»þÅÀ¤Î¥«¥¦¥ó¥¿¤Ï %t ¤Ç¤¹\n',[_Ï¢·ë¥ê¥¹¥È,_¥«¥¦¥ó¥¿]),!. Éé¤Î¿ô¤¬ÆþÎϤµ¤ì¤¿¤éÉé¤Î¿ô¤ÎÀäÂÐÃÍ¤ÈÆ±¤¸²ó¿ôÆþÎϤµ¤ì¤¿¿ô¤Î¥Ç¡¼¥¿¤òºï½ü¤·¤ÆÏ¢·ë¥ê¥¹¥È¤ÎºÇ¸å¤Ë0¤ò²Ã¤¨¤ë(_Éé¤Î¿ô,L_1,_¥«¥¦¥ó¥¿_1,L_2,_¥«¥¦¥ó¥¿_2) :- _Éé¤Î¿ô < 0, _Éé¤Î¿ô¤ÎÀäÂÐÃÍ is abs(_Éé¤Î¿ô), Éé¤Î¿ô¤ÎÀäÂÐÃÍ¤ÈÆ±¤¸²ó¿ôÆþÎϤµ¤ì¤¿¿ô¤Î¥Ç¡¼¥¿¤òºï½ü(_Éé¤Î¿ô¤ÎÀäÂÐÃÍ,L_1,L_3), Ï¢·ë¥ê¥¹¥È¤ÎºÇ¸å¤Ë0¤ò²Ã¤¨¤ë(L3,L2),!. Ï¢·ë¥ê¥¹¥È¤ÎºÇ¸å¤Ë0¤ò²Ã¤¨¤ë(L3,L2) :- append(L_3,[0],L_2),!. Éé¤Î¿ô¤ÎÀäÂÐÃÍ¤ÈÆ±¤¸²ó¿ôÆþÎϤµ¤ì¤¿¿ô¤Î¥Ç¡¼¥¿¤òºï½ü(_Éé¤Î¿ô¤ÎÀäÂÐÃÍ,L_1,L_2) :- ´û¤ËÆþÎϤµ¤ì¤¿½ÅÊ£¤·¤Ê¤¤¿ô¤Ê¤é¤Ó¤òÆÀ¤ë(L_1,_¿ô¤Ê¤é¤Ó), ºï½ü¤¹¤ë¿ô¤òÁªÂò¤¹¤ë(_Éé¤Î¿ô¤ÎÀäÂÐÃÍ,_¿ô¤Ê¤é¤Ó,L_1,_ºï½ü¤¹¤ë¿ô¸õÊä), Ï¢·ë¥ê¥¹¥È¤«¤é¥Ç¡¼¥¿¤òºï½ü(_ºï½ü¤¹¤ë¿ô¸õÊä,L_1,L_2). ´û¤ËÆþÎϤµ¤ì¤¿½ÅÊ£¤·¤Ê¤¤¿ô¤Ê¤é¤Ó¤òÆÀ¤ë(L_1,_¿ô¤Ê¤é¤Ó) :- findsetof(_¿ô,append(_,[_¿ô|_],L_1),_¿ô¤Ê¤é¤Ó),!. ºï½ü¤¹¤ë¿ô¤òÁªÂò¤¹¤ë(_Éé¤Î¿ô¤ÎÀäÂÐÃÍ,_¿ô¤Ê¤é¤Ó,L_1,_ºï½ü¤¹¤ë¿ô¸õÊä) :- findall(_¿ô,( append(_,[_¿ô|_],_¿ô¤Ê¤é¤Ó), Éé¤Î¿ô¤ÎÀäÂÐÃͤËÍ×ÁÇ¿ô¤¬°ìÃפ¹¤ë¿ô(_Éé¤Î¿ô¤ÎÀäÂÐÃÍ,L_1,_¿ô)), _ºï½ü¤¹¤ë¿ô¸õÊä),!. Éé¤Î¿ô¤ÎÀäÂÐÃͤËÍ×ÁÇ¿ô¤¬°ìÃפ¹¤ë¿ô(_Éé¤Î¿ô¤ÎÀäÂÐÃÍ,L_1,_¿ô) :- count(append(_,[_¿ô|_],L_1),_Éé¤Î¿ô¤ÎÀäÂÐÃÍ)),!. Ï¢·ë¥ê¥¹¥È¤«¤é¥Ç¡¼¥¿¤òºï½ü([],L,L) :- !. Ï¢·ë¥ê¥¹¥È¤«¤é¥Ç¡¼¥¿¤òºï½ü([_¿ô|R],L_1,L) :- ¤Ê¤é¤Ó¤«¤éºï½ü(_¿ô,L_1,L_2), Ï¢·ë¥ê¥¹¥È¤«¤é¥Ç¡¼¥¿¤òºï½ü(R,L_2,L). ¤Ê¤é¤Ó¤«¤éºï½ü(_,[],[]) :- !. ¤Ê¤é¤Ó¤«¤éºï½ü(_ºï½ü¤¹¤ëÍ×ÁÇ,[_ºï½ü¤¹¤ëÍ×ÁÇ|_»Ä¤êÂоݤʤé¤Ó],_ºï½ü¤µ¤ì¤¿¤Ê¤é¤Ó) :- ¤Ê¤é¤Ó¤«¤éºï½ü(_ºï½ü¤¹¤ëÍ×ÁÇ,_»Ä¤êÂоݤʤé¤Ó,_ºï½ü¤µ¤ì¤¿¤Ê¤é¤Ó),!. ¤Ê¤é¤Ó¤«¤éºï½ü(_ºï½ü¤¹¤ëÍ×ÁÇ,[_Í×ÁÇ|_»Ä¤êÂоݤʤé¤Ó],[_Í×ÁÇ|_»Ä¤êºï½ü¤Ê¤é¤Ó]) :- ¤Ê¤é¤Ó¤«¤éºï½ü(_ºï½ü¤¹¤ëÍ×ÁÇ,_»Ä¤êÂоݤʤé¤Ó,_»Ä¤êºï½ü¤Ê¤é¤Ó),!. ½é¤á¤ÆÆþÎϤµ¤ì¤¿¿ô¤Ê¤é¤Ð¥«¥¦¥ó¥¿¤ò1Áý¤ä¤¹(_¿ô,L_1,_¥«¥¦¥ó¥¿_1,L_2,_¥«¥¦¥ó¥¿_3) :- \+(append(_,[_¿ô|_],L_1)), _¥«¥¦¥ó¥¿_2 is _¥«¥¦¥ó¥¿_1 + 1, Ʊ¤¸¿ô¤¬Â³¤±¤ÆÆþÎϤµ¤ì¤¿¤é¤½¤Î¿ô¤Î¥«¥¦¥ó¥¿¤ò¤µ¤é¤Ë1Áý¤ä¤¹(_¿ô,L_1,_¥«¥¦¥ó¥¿_2,_¥«¥¦¥ó¥¿_3), Ï¢·ë¥ê¥¹¥È¤ÎºÇ¸å¤Ë¿ô¤òÄɲÃ(_¿ô,L_1,L_2),!. Ʊ¤¸¿ô¤¬Â³¤±¤ÆÆþÎϤµ¤ì¤¿¤é¤½¤Î¿ô¤Î¥«¥¦¥ó¥¿¤ò¤µ¤é¤Ë1Áý¤ä¤¹(_¿ô,L_1,_¥«¥¦¥ó¥¿_1,_¥«¥¦¥ó¥¿_2) :- last(L_1,_¿ô), _¥«¥¦¥ó¥¿_2 is _¥«¥¦¥ó¥¿_1 + 1,!. Ʊ¤¸¿ô¤¬Â³¤±¤ÆÆþÎϤµ¤ì¤¿¤é¤½¤Î¿ô¤Î¥«¥¦¥ó¥¿¤ò¤µ¤é¤Ë1Áý¤ä¤¹(_,_,_¥«¥¦¥ó¥¿_1,_¥«¥¦¥ó¥¿_1). Ï¢·ë¥ê¥¹¥È¤ÎºÇ¸å¤Ë¿ô¤òÄɲÃ(_¿ô,L_1,L_2) :- append(L_1,[_¿ô],L_2). ¿ôÆþÎÏ(_¿ô) :- write('¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), get_line(Line), ¿ôÆþÎÏ¿ÇÃÇ(Line,_¿ô),!. ¿ôÆþÎÏ(_¿ô) :- ¿ôÆþÎÏ(_¿ô). ¿ôÆþÎÏ¿ÇÃÇ(Line,_¿ô) :- atom_to_term(Line,_¿ô,_), number(_¿ô),!. ¿ôÆþÎÏ¿ÇÃÇ(Line,_¿ô) :- writef('ÆþÎϤµ¤ì¤¿ %t ¤«¤é¤Ï¿ôÃͤ¬ÆÀ¤é¤ì¤Þ¤»¤ó¡£ºÆÆþÎϤò¤ª´ê¤¤¤·¤Þ¤¹\n',[Line]), fail. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ¤â¤¦°ìÅÙ¡£¥Æ¡¼¥Ö¥ëtable¤Ë¥­¡¼A¤ÎÎó¤È¥­¡¼B¤ÎÎ󤬤¢¤ë¡£ # ¥­¡¼B¤Ï»þ·ÏÎó¤Ç¡¢Î㤨¤Ð2011ǯ5·î6Æü¤Ê¤é20110506¤ß¤¿¤¤¤Ê´¶¤¸¡£ # ºòÆü¤Ê¤é20110505¤À¤Ê¡£¤Ä¤Þ¤ê¥×¥é¥¤¥Þ¥ê¤Ç¤Ï¤¢¤ë¡£ # ¤³¤¤¤Ä¤ò¥­¡¼AËè¤Ë¾å°Ì5¤Ä¤º¤ÄÈ´¤­½Ð¤·¤¿¥Ç¡¼¥¿¥Æ¡¼¥Ö¥ë(VIEW)¤òºî¤ê¤¿¤¤ # ÍËÆü¤´¤È¤Ë¡¢ÆüÉÕ¤ÎÁᤤ½ç5tuples¤ò¤È¤ê¤À¤¹¡£ # # ÍËÆü(¶âÍË,'20110401'). # ÍËÆü(·îÍË,'20110404'). # ÍËÆü(²ÐÍË,'20110405'). # ÍËÆü(¿åÍË,'20110406'). # ÍËÆü(¶âÍË,'20110408'). # ÍËÆü(ÅÚÍË,'20110409'). # ÍËÆü(·îÍË,'20110411'). # ÍËÆü(²ÐÍË,'20110412'). # ÍËÆü(ÌÚÍË,'20110414'). # ÍËÆü(¶âÍË,'20110415'). # ÍËÆü(ÅÚÍË,'20110416'). # ÍËÆü(ÆüÍË,'20110417'). # ÍËÆü(·îÍË,'20110418'). # ÍËÆü(²ÐÍË,'20110419'). # ÍËÆü(ÌÚÍË,'20110421'). # ÍËÆü(¶âÍË,'20110422'). # ÍËÆü(ÅÚÍË,'20110423'). # ÍËÆü(·îÍË,'20110425'). # ÍËÆü(²ÐÍË,'20110426'). # ÍËÆü(¿åÍË,'20110427'). # ÍËÆü(ÌÚÍË,'20110428'). # ÍËÆü(ÆüÍË,'20110501'). # ÍËÆü(·îÍË,'20110502'). # ÍËÆü(²ÐÍË,'20110503'). # ÍËÆü(¿åÍË,'20110504'). # ÍËÆü(ÌÚÍË,'20110505'). # ÍËÆü(ÅÚÍË,'20110507'). # ÍËÆü(ÆüÍË,'20110508'). # ÍËÆü(·îÍË,'20110509'). # ÍËÆü(²ÐÍË,'20110510'). # ÍËÆü(¶âÍË,'20110513'). # ÍËÆü(ÅÚÍË,'20110514'). # ÍËÆü(ÆüÍË,'20110515'). # ÍËÆü(²ÐÍË,'20110517'). # ÍËÆü(¿åÍË,'20110518'). # ÍËÆü(ÌÚÍË,'20110519'). # ÍËÆü(ÆüÍË,'20110522'). # ÍËÆü(·îÍË,'20110523'). # ÍËÆü(²ÐÍË,'20110524'). # ÍËÆü(¿åÍË,'20110525'). # ÍËÆü(ÌÚÍË,'20110526'). # ÍËÆü(¶âÍË,'20110527'). # ÍËÆü(ÅÚÍË,'20110528'). # ÍËÆü(ÆüÍË,'20110529'). # ÍËÆü(·îÍË,'20110530'). # ÍËÆü(²ÐÍË,'20110531'). ÍËÆü¤´¤È¤ÎºÇ½é¤Î¸Þ¤Ä¤ÎÆüÉÕ(_ÍËÆü,_ºÇ½é¤Î¸Þ¤Ä¤ÎÆüÉդʤé¤Ó) :- eachsetof(_ÍËÆü,ÍËÆü(_ÍËÆü,_ÆüÉÕ),_ÍËÆü_1), setof(_ÆüÉÕ_1,ÍËÆü(_ÍËÆü_1,_ÆüÉÕ_1),L), limit_n(5,L,_ºÇ½é¤Î¸Þ¤Ä¤ÎÆüÉդʤé¤Ó). %%%% ÈÆÍѽҸì(¥æ¡¼¥¶ÄêµÁ) %%%% limit_n(N,L,_limit_n_L) :- length(L,Len), Len < N, L = _limit_n_L),!. limit_n(N,L,_limit_n_L) :- length(_limit_n_L,N), append(_limit_n_L,_,L). eachsetof(A,B,E) :- findsetof(A,B,L), append(_,[E|_],L). findsetof(A,B,L) :- findall(A,B,C), setof(A,member(A,C),L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # I am sorry to ask this question, but it has been a lot since I programmed in Prolog. I think I am used to imperative paradigm. :-( # # I am trying to obtain itemsets from a Prolog relation # # % transaction(Time, Client, Item) # transaction(1, 2, 10). # transaction(1, 2, 20). # transaction(2, 5, 90). # transaction(3, 2, 30). # transaction(4, 2, 40). # transaction(4, 2, 60). # transaction(4, 2, 70). # transaction(5, 4, 30). # transaction(5, 3, 30). # transaction(5, 3, 50). # transaction(5, 3, 70). # transaction(5, 1, 30). # transaction(6, 1, 90). # transaction(6, 4, 40). # transaction(6, 4, 70). # transaction(7, 4, 90). # # % Transformation of transactions to Lists of items per Time per Client. # transaction2(Time, Client, List) :- # setof(Item, Time^Client^transaction(Time, Client, Item), List). # # % Itemsets. # itemsets :- # transaction(Time, Client, _), # transaction2(Time, Client, List), # assert(init(List)). # % Main: # main(Itemsets) :- # itemsets, # setof(Basket, init(Basket), Itemsets), # retractall(init(Basket)). # Then if I consult main(X) I would like to obtain: # # X = [[10, 20], [30], [30, 50, 70], [40, 60, 70], [40, 70], [90]] # I just can't figure out a proper way of doing this. # # If I can get a pointer or a little help I will appreciate very much. # main(Items) :- findsetof([T1,C1],transaction(T1,C1,_),L1), findsetof(L2,( append(_,[[T2,C2]|_],L1), findsetof(Item,transaction(T2,C2,Item),L2)), Items). findsetof(A,B,L) :- findall(A,B,C), setof(A,member(A,C),L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/137 # # ¤ªÀ¤ÏäˤʤäƤ¤¤Þ¤¹¡£ # # ¤É¤Î¤è¤¦¤ÊSQL¤Ë¤Ê¤ë¤«¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£ # # ¥Æ¡¼¥Ö¥ëA ¥Æ¡¼¥Ö¥ëB ¥Æ¡¼¥Ö¥ëC # E111,001,AR E111,001,AR E111,001,AR # E111,001,AY E111,001,AY E111,001,AY # E111,002,AR E111,003,AR E111,004,AR # # ¾åµ­¤Î¤è¤¦¤ÊƱ¤¸¥­¡¼¹àÌÜ(ID,ÈÖ¹æ,¥³¡¼¥É)¤ò»ý¤Ä3¤Ä¤Î¥Æ¡¼¥Ö¥ë¤¬¤¢¤ë¤È¤­¡¢ # # E111,001,AR,E111,001,AR,E111,001,AR # E111,001,AY,E111,001,AY,E111,001,AY # E111,002,AR,'','','','','','' # '','','',E111,003,AR,'','','' # '','','','','','',E111,004,AR # # ¤Î·Á¤Ç¥ì¥³¡¼¥É¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï¤É¤Î¤è¤¦¤ÊSQL¤Ë¤Ê¤ê¤Þ¤¹¤«¡© # # ¤ª´ê¤¤¤·¤Þ¤¹¡£ # # # '¾åµ­¤Î¤è¤¦¤ÊƱ¤¸¥­¡¼¹àÌÜ(ID,ÈÖ¹æ,¥³¡¼¥É)¤ò»ý¤Ä3¤Ä¤Î¥Æ¡¼¥Ö¥ë¤¬¤¢¤ë¤È¤­¡¢3¥ì¥³¡¼¥É¤òÊ»µ­¤¹¤ë'(L) :- findsetof([A,B],¥Æ¡¼¥Ö¥ëA(A,B,_),L1), findsetof([A,B],¥Æ¡¼¥Ö¥ëB(A,B,_),L2), findsetof([A,B],¥Æ¡¼¥Ö¥ëC(A,B,_),L3), append(L1,L2,L3,L4), findsetof([A,B],append(_,[[A,B]|_],L4),L5), findall([A1,B1,X,A2,B2,Y,A3,B3,Z],( append(_,[[A,B]|_],L5), '3¥ì¥³¡¼¥ÉÁªÂò'(A,B,A1,B1,X,A2,B2,Y,A3,B3,Z), \+((X='',Y='',Z=''))),L). '3¥ì¥³¡¼¥ÉÁªÂò'(A,B,A1,B1,X,A2,B2,Y,A3,B3,Z) :- ÁªÂòA(A,B,A1,B1,X), ÁªÂòB(A,B,A2,B2,Y), ÁªÂòC(A,C,A3,B3,Z). ÁªÂòA(A,B,'','','') :- \+(¥Æ¡¼¥Ö¥ëA(A,B,X)),!. ÁªÂòA(A,B,A,B,X) :- ¥Æ¡¼¥Ö¥ëA(A,B,X). ÁªÂòB(A,B,'','','') :- \+(¥Æ¡¼¥Ö¥ëB(A,B,X)),!. ÁªÂòB(A,B,A,B,X) :- ¥Æ¡¼¥Ö¥ëB(A,B,X). ÁªÂòC(A,B,'','','') :- \+(¥Æ¡¼¥Ö¥ëC(A,B,X)),!. ÁªÂòC(A,B,A,B,X) :- ¥Æ¡¼¥Ö¥ëC(A,B,X). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1301553333/212 # # [1]£Ã¸À¸ì±é½¬ # [2]ÌäÂêʸ # ¼¡¤Î·Á¼°¤Î¥¿¥Ö¶èÀÚ¤ê¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¡£¡Ê¹Ô¿ô¤ÏºÇÂç¤Ç1000Ëü¹Ô¤È¤¹¤ë) # À¸Ạ̊ɣġ¡¥¯¥é¥¹Ì¾¡¡¹ñ¸ìÆÀÅÀ¡¡¿ô³ØÆÀÅÀ¡¡±Ñ¸ìÆÀÅÀ # À¸Ạ̊ɣĤϣ¸·å¤Î0¤«¤é9¤Ç¹½À®¤µ¤ì¤ëʸ»úÎó # ¥¯¥é¥¹Ì¾¤Ï4·å¤Î0¤«¤é9¤Ç¹½À®¤µ¤ì¤ëʸ»úÎó # ¹ñ¸ìÆÀÅÀ¡¢¿ô³ØÆÀÅÀ¡¢±Ñ¸ìÆÀÅÀ¤Ï3·å¤Î0¤«¤é9¤Ç¹½À®¤µ¤ì¤ëʸ»úÎó¤È¤¹¤ë¡£ # # (2)¤½¤ì¤¾¤ì¤Î¶µ²Ê¤ÎÆÀÅÀ¤¬½ê°¤·¤Æ¤¤¤ë¥¯¥é¥¹¤Î³Æ¶µ²Ê¤ÎÊ¿¶ÑÅÀ¤ÎÂç¾®´Ø·¸¤È # Ʊ¤¸À¸Å̤ò¥ê¥¹¥È¥¢¥Ã¥×¤»¤è # ¤¿¤À¤·¤¢¤ë¥¯¥é¥¹¤Î£²¤Ä¤Î¶µ²Ê¤ÎÊ¿¶ÑÅÀ¤¬°ìÃפ·¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤Î£²¤Ä¤Î¶µ²Ê¤ÎÆÀÅÀ¤Î # Âç¾®´Ø·¸¤ÏÉÔÌä¤È¤·¤Æ½ÐÎϤ¹¤ë¡£¡Ê£³¤Ä¤¬°ìÃפ·¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤Î¥¯¥é¥¹¤ÎÀ¸ÅÌÁ´°÷ # ¤¬¥ê¥¹¥È¥¢¥Ã¥×¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë # [3]¡¡£Ï£Ó¤ÏLinux,¸À¸ì¤ÏC¤Ç¤¹¡£(C++¤ÏÉÔ²Ä) # [4] 4/30¤Þ¤Ç # [5] stdlib.h stdio.h string.h¤òinclude¤·¤Æ¤âÎɤ¤¤¬¤½¤ì°Ê³°¤ÏÉԲĤÀ¤½¤¦¤Ç¤¹ # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # ¤½¤ì¤¾¤ì¤Î¶µ²Ê¤ÎÆÀÅÀ¤¬½ê°¤·¤Æ¤¤¤ë¥¯¥é¥¹¤Î³Æ¶µ²Ê¤ÎÊ¿¶ÑÅÀ¤ÎÂç¾®´Ø·¸¤¬Æ±¤¸À¸Å̤ò¥ê¥¹¥È¥¢¥Ã¥×(_¥Õ¥¡¥¤¥ë) :- get_split_lines(_¥Õ¥¡¥¤¥ë,['\t'],LL), findsetof(_¥¯¥é¥¹,append(_,[[_,_¥¯¥é¥¹,_,_,_]|_],LL),_¥¯¥é¥¹¤Ê¤é¤Ó), findall([_¥¯¥é¥¹,_¥Ñ¥¿¡¼¥ó],( append(_,[_¥¯¥é¥¹|_],_¥¯¥é¥¹¤Ê¤é¤Ó), ¥Ñ¥¿¡¼¥ó(LL,_¥¯¥é¥¹,_¹ñ¸ìÊ¿¶ÑÅÀ,_¿ô³ØÊ¿¶ÑÅÀ,_±Ñ¸ìÊ¿¶ÑÅÀ,_¥Ñ¥¿¡¼¥ó)), _¥¯¥é¥¹¡¦¥Ñ¥¿¡¼¥ó¤Ê¤é¤Ó), append(_,[[_ID,_¥¯¥é¥¹,_¹ñ¸ì,_¿ô³Ø,_±Ñ¸ì]|R],LL), ¥Ñ¥¿¡¼¥ó¤¬°ìÃפ·¤¿¤éɽ¼¨(_ID,_¥¯¥é¥¹,_¥¯¥é¥¹¥Ñ¥¿¡¼¥ó¤Ê¤é¤Ó,_¹ñ¸ì,_¿ô³Ø,_±Ñ¸ì), R = [],!. ¥Ñ¥¿¡¼¥ó¤¬°ìÃפ·¤¿¤éɽ¼¨(_ID,_¥¯¥é¥¹,_¥¯¥é¥¹¡¦¥Ñ¥¿¡¼¥ó¤Ê¤é¤Ó,_¹ñ¸ì,_¿ô³Ø,_±Ñ¸ì) :- append(_,[[_¥¯¥é¥¹,_¥Ñ¥¿¡¼¥ó]|_],_¥¯¥é¥¹¡¦¥Ñ¥¿¡¼¥ó¤Ê¤é¤Ó), ¥Ñ¥¿¡¼¥óȽÃÇ(_¥Ñ¥¿¡¼¥ó,_¹ñ¸ì,_¿ô³Ø,_±Ñ¸ì), write_formatted('%t\n',[_¥¯¥é¥¹,_ID]),!. ¥Ñ¥¿¡¼¥ó¤¬°ìÃפ·¤¿¤éɽ¼¨(_,_,_,_,_,_). ¥Ñ¥¿¡¼¥ó(LL,_¥¯¥é¥¹,_¹ñ¸ìÊ¿¶ÑÅÀ,_¿ô³ØÊ¿¶ÑÅÀ,_±Ñ¸ìÊ¿¶ÑÅÀ,_¥Ñ¥¿¡¼¥ó) :- findavg(_¹ñ¸ì,append(_,[[_,_¥¯¥é¥¹,_¹ñ¸ì,_,_]|_],LL),_¹ñ¸ìÊ¿¶ÑÅÀ), findavg(_¿ô³Ø,append(_,[[_,_¥¯¥é¥¹,_¿ô³Ø,_,_]|_],LL),_¿ô³ØÊ¿¶ÑÅÀ), findavg(_±Ñ¸ì,append(_,[[_,_¥¯¥é¥¹,_±Ñ¸ì,_,_]|_],LL),_±Ñ¸ìÊ¿¶ÑÅÀ), ¥Ñ¥¿¡¼¥ó(_¥Ñ¥¿¡¼¥ó,_¹ñ¸ìÊ¿¶ÑÅÀ,_¿ô³ØÊ¿¶ÑÅÀ,_±Ñ¸ìÊ¿¶ÑÅÀ). ¥Ñ¥¿¡¼¥ó(1,A,B,C) :- A >B,B > C,!. ¥Ñ¥¿¡¼¥ó(2,A,B,C) :- A >C,C > B,!. ¥Ñ¥¿¡¼¥ó(3,A,B,C) :- B >A,A > C,!. ¥Ñ¥¿¡¼¥ó(4,A,B,C) :- B >C,C > A,!. ¥Ñ¥¿¡¼¥ó(5,A,B,C) :- C >A,A > B,!. ¥Ñ¥¿¡¼¥ó(6,A,B,C) :- C >B,B > A,!. ¥Ñ¥¿¡¼¥ó(7,E,E,C) :- \+(E=C),E > C,!. ¥Ñ¥¿¡¼¥ó(8,E,E,C) :- \+(E=C),E < C,!. ¥Ñ¥¿¡¼¥ó(9,E,B,E) :- \+(E=B),E > B,!. ¥Ñ¥¿¡¼¥ó(10,E,B,E) :- \+(E=B),E < B,!. ¥Ñ¥¿¡¼¥ó(11,A,E,E) :- \+(E=C),E < A,!. ¥Ñ¥¿¡¼¥ó(12,A,E,E) :- \+(E=C),E > A,!. ¥Ñ¥¿¡¼¥ó(13,E,E,E). ¥Ñ¥¿¡¼¥óȽÃÇ(_¥Ñ¥¿¡¼¥ó,A,B,C) :- _¥Ñ¥¿¡¼¥ó < 7, ¥Ñ¥¿¡¼¥ó(_¥Ñ¥¿¡¼¥ó,A,B,C),!. ¥Ñ¥¿¡¼¥óȽÃÇ(7,A,B,C) :- C < A,C < B,!. ¥Ñ¥¿¡¼¥óȽÃÇ(8,A,B,C) :- C > A,C > B,!. ¥Ñ¥¿¡¼¥óȽÃÇ(9,A,B,C) :- B < A,B < C,!. ¥Ñ¥¿¡¼¥óȽÃÇ(10,A,B,C) :- B > A,B > C,!. ¥Ñ¥¿¡¼¥óȽÃÇ(11,A,E,E) :- A < B,A < C,!. ¥Ñ¥¿¡¼¥óȽÃÇ(12,A,E,E) :- A > B,A > C,!. ¥Ñ¥¿¡¼¥óȽÃÇ(13,_,_,_). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1301553333/212 # # [1]£Ã¸À¸ì±é½¬ # [2]ÌäÂêʸ # ¼¡¤Î·Á¼°¤Î¥¿¥Ö¶èÀÚ¤ê¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¡£¡Ê¹Ô¿ô¤ÏºÇÂç¤Ç1000Ëü¹Ô¤È¤¹¤ë) # À¸Ạ̊ɣġ¡¥¯¥é¥¹Ì¾¡¡¹ñ¸ìÆÀÅÀ¡¡¿ô³ØÆÀÅÀ¡¡±Ñ¸ìÆÀÅÀ # À¸Ạ̊ɣĤϣ¸·å¤Î0¤«¤é9¤Ç¹½À®¤µ¤ì¤ëʸ»úÎó # ¥¯¥é¥¹Ì¾¤Ï4·å¤Î0¤«¤é9¤Ç¹½À®¤µ¤ì¤ëʸ»úÎó # ¹ñ¸ìÆÀÅÀ¡¢¿ô³ØÆÀÅÀ¡¢±Ñ¸ìÆÀÅÀ¤Ï3·å¤Î0¤«¤é9¤Ç¹½À®¤µ¤ì¤ëʸ»úÎó¤È¤¹¤ë¡£ # # (1)³Æ¶µ²Ê¤ÎÆÀÅÀ¤ÎϤ¬Æ±¤¸À¸ÅÌã¤Î¥°¥ë¡¼¥×¤Ë¤Ä¤¤¤Æ¡¢¤½¤Î¥°¥ë¡¼¥×¤¬²¿¿Í¤Ç²¿¥¯¥é¥¹¤Î # À¸Å̤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë¤«¤ò¡¢ÆÀÅÀÏÂËè¤Ëɽ½ÐÎϤ»¤è # ¤¿¤À¤·£°¿Í¤Ç¹½À®¤µ¤ì¤ë¥°¥ë¡¼¥×¤Ë¤Ä¤¤¤Æ¤Ï½ÐÎϤ¹¤ëɬÍפ¬¤Ê¤¤¡£ # ·Á¼°Îã # ÆÀÅÀ¡§£±£²£³¡¡¿Í¿ô¡§£µ¿Í¡¡¥°¥ë¡¼¥×¿ô¡§£´ # ÆÀÅÀ¡§£±£²£¸¡¡¿Í¿ô¡§£³¿Í¡¡¥°¥ë¡¼¥×¿ô¡§£³ # ÆÀÅÀ¡§£²£±£´¡¡¿Í¿ô¡§£±£±¿Í¡¡¥°¥ë¡¼¥×¿ô¡§£¹ # ............ # # (2)¤½¤ì¤¾¤ì¤Î¶µ²Ê¤ÎÆÀÅÀ¤¬½ê°¤·¤Æ¤¤¤ë¥¯¥é¥¹¤Î³Æ¶µ²Ê¤ÎÊ¿¶ÑÅÀ¤ÎÂç¾®´Ø·¸¤È # Ʊ¤¸À¸Å̤ò¥ê¥¹¥È¥¢¥Ã¥×¤»¤è # ¤¿¤À¤·¤¢¤ë¥¯¥é¥¹¤Î£²¤Ä¤Î¶µ²Ê¤ÎÊ¿¶ÑÅÀ¤¬°ìÃפ·¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤Î£²¤Ä¤Î¶µ²Ê¤ÎÆÀÅÀ¤Î # Âç¾®´Ø·¸¤ÏÉÔÌä¤È¤·¤Æ½ÐÎϤ¹¤ë¡£¡Ê£³¤Ä¤¬°ìÃפ·¤Æ¤¤¤ë¾ì¹ç¤Ï¤½¤Î¥¯¥é¥¹¤ÎÀ¸ÅÌÁ´°÷ # ¤¬¥ê¥¹¥È¥¢¥Ã¥×¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë # [3]¡¡£Ï£Ó¤ÏLinux,¸À¸ì¤ÏC¤Ç¤¹¡£(C++¤ÏÉÔ²Ä) # [4] 4/30¤Þ¤Ç # [5] stdlib.h stdio.h string.h¤òinclude¤·¤Æ¤âÎɤ¤¤¬¤½¤ì°Ê³°¤ÏÉԲĤÀ¤½¤¦¤Ç¤¹ # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # '³Æ¶µ²Ê¤ÎÆÀÅÀ¤ÎϤ¬Æ±¤¸À¸ÅÌã¤Î¥°¥ë¡¼¥×¤Ë¤Ä¤¤¤Æ¡¢¤½¤Î¥°¥ë¡¼¥×¤¬²¿¿Í¤Ç²¿¥¯¥é¥¹¤ÎÀ¸Å̤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë¤«¤ò¡¢ÆÀÅÀÏÂËè¤Ëɽ½ÐÎϤ»¤è'(_¥Õ¥¡¥¤¥ë) :- get_split_lines(_¥Õ¥¡¥¤¥ë,['\t'],LL), findall([_ÆÀÅÀ¹ç·×,_¥¯¥é¥¹Ì¾],( append(_,[[_À¸Ạ̊ɣÄ,_¥¯¥é¥¹Ì¾,_¹ñ¸ìÆÀÅÀ,_¿ô³ØÆÀÅÀ,_±Ñ¸ìÆÀÅÀ]|_],LL), _ÆÀÅÀ¹ç·× is _¹ñ¸ìÆÀÅÀ,_¿ô³ØÆÀÅÀ,_±Ñ¸ìÆÀÅÀ), L1), findsetof(_ÆÀÅÀ¹ç·×,( append(_,[[_ÆÀÅÀ¹ç·×,_]|_,L1)), L2), findsetof([_ÆÀÅÀ¹ç·×,_¥¯¥é¥¹]( append(_,[[_ÆÀÅÀ¹ç·×,_¥¯¥é¥¹]|_,L1)), L3), findall([_ÆÀÅÀ¹ç·×,_¥°¥ë¡¼¥×¿Í¿ô,_¥¯¥é¥¹¿ô],( append(_,[_ÆÀÅÀ¹ç·×|_],L2), count(append(_,[[_ÆÀÅÀ¹ç·×,_]|_],L1),_¥°¥ë¡¼¥×¿Í¿ô)), count(append(_,[[_ÆÀÅÀ¹ç·×,_]|_],L3),_¥¯¥é¥¹¿ô)), _ÆÀÅÀ¹ç·×¡¦¥°¥ë¡¼¥×¿Í¿ô¡¦¥¯¥é¥¹¿ô½¸·×¤Ê¤é¤Ó), ½ÐÎϤ¹¤ë(_ÆÀÅÀ¹ç·×¡¦¥°¥ë¡¼¥×¿Í¿ô¡¦¥¯¥é¥¹¿ô½¸·×¤Ê¤é¤Ó). ½ÐÎϤ¹¤ë(_ÆÀÅÀ¹ç·×¡¦¥°¥ë¡¼¥×¿Í¿ô¡¦¥¯¥é¥¹¿ô½¸·×¤Ê¤é¤Ó) :- append(_,[[_ÆÀÅÀ¹ç·×,_¥°¥ë¡¼¥×¿Í¿ô,_¥¯¥é¥¹¿ô]|R],_ÆÀÅÀ¹ç·×¡¦¥°¥ë¡¼¥×¿Í¿ô¡¦¥¯¥é¥¹¿ô½¸·×¤Ê¤é¤Ó), write_formatted('ÆÀÅÀ¡§%t¡¡¿Í¿ô¡§%t¿Í¡¡¥°¥ë¡¼¥×¿ô¡§%t\n',[_ÆÀÅÀ¹ç·×,_¥°¥ë¡¼¥×¿Í¿ô,_¥¯¥é¥¹¿ô]), R = [],!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # http://bit.ly/dIOWsn test(t1,[a,b,c]). test(t2,[a,b]). test(t3,[a,d]). test(t4,[e,f]). test(t5,[e,f,b,c,a]). ¤¢¤ëÍ×ÁǤò´Þ¤à½¸¹ç̾¤ò½¯½¸¤¹¤ë(_Í×ÁǤʤé¤Ó,_½¯½¸¤µ¤ì¤¿½¸¹ç̾) :- findsetof(_½¸¹ç̾,( append(_,[_Í×ÁÇ|_],_Í×ÁǤʤé¤Ó), test(_½¸¹ç̾,_½¸¹ç), append(_,[_Í×ÁÇ|_],_½¸¹ç)), _½¯½¸¤µ¤ì¤¿½¸¹ç̾). findsetof(A,B,L) :- findall(A,B,C), setof(A,member(A,C),L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/106 # # ¥¹¥È¥¢¥É¥×¥í¥·¡¼¥¸¥ã¤Ë¤Ä¤¤¤Æ¼ÁÌ䤵¤»¤Æ¤¯¤À¤µ¤¤¡£ # # ´Êñ¤Ê·ë²Ì¤òÊÖ¤¹¥¯¥¨¥ê # SELECT A,B,C FROM TEST # # ¤È¤¤¤Ã¤¿¥¯¥¨¥ê¤Î·ë²Ì¤òÌá¤êÃͤȤ·¤ÆÊÖ¤¹¥¹¥È¥¢¥É¤òºîÀ®¤·¤¿¤¤¤Î¤Ç¤¹¤¬ # ¤É¤Î¤è¤¦¤Ë½ñ¤±¤ÐÎɤ¤¤Î¤«¤ï¤«¤ê¤Þ¤»¤ó¡£ # # ñ°ì¤ÎÎó¤Î¤ß¤òÊÖ¤¹ÊýË¡¤Ê¤é¤ï¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢Ê£¿ôÎó¤òÊÖ¤¹ÊýË¡¤¬ # ʬ¤«¤é¤Ê¤¤¤È¤¤¤Ã¤¿¾õÂ֤Ǥ¹¡£ # ¥Æ¡¼¥Ö¥ë¹½Â¤('TEST',1,'A'). ¥Æ¡¼¥Ö¥ë¹½Â¤('TEST',2,'B'). ¥Æ¡¼¥Ö¥ë¹½Â¤('TEST',3,'C'). ´Êñ¤Ê·ë²Ì¤òÊÖ¤¹¥¯¥¨¥ê(_¥Æ¡¼¥Ö¥ë̾,_ÁªÂò¹à¤Ê¤é¤Ó,_Ãͤʤé¤Ó) :- count(¥Æ¡¼¥Ö¥ë¹½Â¤('TEST',_,_),Len), length(_Ãͤʤé¤Ó,Len), findsetof(_,( ¥Æ¡¼¥Ö¥ë¹½Â¤(_¥Æ¡¼¥Ö¥ë̾,Nth,_)), L), P =.. [_¥Æ¡¼¥Ö¥ë|_ÊÑ¿ô¤Ê¤é¤Ó], call(P), ÁªÂò¹à¤ÈÃͤηë¹ç(L,_ÁªÂò¹à¤Ê¤é¤Ó,_Ãͤʤé¤Ó). ÁªÂò¹à¤ÈÃͤηë¹ç(_¥Æ¡¼¥Ö¥ë̾,L,[],[]) :- !. ÁªÂò¹à¤ÈÃͤηë¹ç(_¥Æ¡¼¥Ö¥ë̾,L,[_ÁªÂò¹à|R1],[_ÃÍ|R2]) :- ¥Æ¡¼¥Ö¥ë¹½Â¤(_¥Æ¡¼¥Ö¥ë̾,Nth,_ÁªÂò¹à), list_nth(Nth,L,_ÃÍ), ÁªÂò¹à¤ÈÃͤηë¹ç(_¥Æ¡¼¥Ö¥ë̾,L,R1,R2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/92 # # ´Ä¶­¤Ïoracle9i¤Ç¤¹¡£ # # ¢£¥Æ¡¼¥Ö¥ë¤Î¹½À® # |ǯÅÙ|·î|Éô½ð¥³¡¼¥É|¾¦ÉÊ¥³¡¼¥É|¶â³Û| # # ¢£¥Æ¡¼¥Ö¥ë¤ÎÆâÍÆ # |2010|01|AAA|001|1000| # |2010|02|AAA|001|2000| # |2010|01|AAA|001|3000| # |2010|01|AAA|002|3000| # |2010|02|BBB|003|4000| # |2010|01|CCC|001|5000| # |2010|03|CCC|001|6000| # # ¾åµ­¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¡¢ # ¤³¤ì¤ò # ¤È¡¢¤³¤³¤Þ¤Ç¤Ê¤é¾å¤Î4¤Ä¤ÇGROUP BY¤·¤Æ¤¢¤²¤ì¤ÐÎɤ¤¤Î¤Ç¤¹¤¬¡¢ # ¤½¤³¤ËǯÅÙ,Éô½ð¥³¡¼¥É,¾¦ÉÊ¥³¡¼¥É¤Ç¥µ¥Þ¥ê¤·¤¿ # ¡ÖÎß·×¶â³Û¡×Îó¤ò²Ã¤¨¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£(¥¤¥á¡¼¥¸¤Ï²¼µ­¤Î¤È¤ª¤ê¤Ç¤¹¡£) # # # ¢£Ãê½Ð·ë²Ì¤Î¹½À® # |ǯÅÙ|·î|Éô½ð¥³¡¼¥É|¾¦ÉÊ¥³¡¼¥É|¶â³Û|Îß·×¶â³Û| # # ¢£Ãê½Ð·ë²Ì¤ÎÆâÍÆ # |2010|01|AAA|001|4000|6000| # |2010|02|AAA|001|2000|6000| # |2010|02|BBB|003|4000|4000| # |2010|01|CCC|001|5000|11000| # |2010|03|CCC|001|6000|11000| # # # GROUP BY¤ÈÊ̤ν¸·×ñ°Ì¤ÇÎó¤òºî¤ë¤³¤È¤¬²Äǽ¤«¡¢ # ²Äǽ¤Ç¤¢¤ì¤Ð¤É¤Î¤è¤¦¤ÊSQL¤ò½ñ¤¯¤Ù¤­¤«¡¢ # ¤È¤¤¤¦¤È¤³¤í¤ò¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£ # # '|ǯÅÙ|·î|Éô½ð¥³¡¼¥É|¾¦ÉÊ¥³¡¼¥É|¶â³Û| ¥Æ¡¼¥Ö¥ë¤òǯÅÙ,·î,Éô½ð¥³¡¼¥É,¾¦ÉÊ¥³¡¼¥É¤Ç¥µ¥Þ¥ê¤·¤¿Ãͤˤµ¤é¤ËǯÅÙ,Éô½ð¥³¡¼¥É,¾¦ÉÊ¥³¡¼¥É¤Ç¥µ¥Þ¥ê¤·¤¿ÃͤòÉղä·¤¿¹Ôɽ¼¨' :- ¸°¤Ê¤é¤Ó¤ÎÀ¸À®([_ǯÅÙ,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É],¥Æ¡¼¥Ö¥ë(_ǯÅÙ,_·î,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É,_¶â³Û),_¸°¤Ê¤é¤Ó¤Î°ì), ¸°¤Ê¤é¤Ó¤ÎÀ¸À®([_ǯÅÙ,_·î,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É],¥Æ¡¼¥Ö¥ë(_ǯÅÙ,_·î,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É,_¶â³Û),_¸°¤Ê¤é¤Ó¤ÎÆó), append(_,[[_ǯÅÙ,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É]|R],_¸°¤Ê¤é¤Ó¤Î°ì), ¶â³ÛÀ©Ìó(_¸°¤Ê¤é¤Ó¤ÎÆó,_ǯÅÙ,_·î,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É,_¶â³Û·î¹ç·×,_¶â³ÛÁí¹ç·×), writef('|%t|%t|%t|%t|%t|%t\n',[_ǯÅÙ,_·î,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É,_¶â³Û·î¹ç·×,_¶â³ÛÁí¹ç·×]), R = []. ¶â³Û½¸Ìó(L2,_ǯÅÙ,_·î,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É,_¶â³Û·î¹ç·×,_¶â³ÛÁí¹ç·×) :- ǯÅÙ¡¦Éô½ð¥³¡¼¥É¡¦¾¦ÉÊ¥³¡¼¥É½¸Ìó(_ǯÅÙ,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É,_¶â³ÛÁí¹ç·×), append(_,[[_ǯÅÙ,_·î,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É]|_],L2), ǯÅÙ¡¦·î¡¦Éô½ð¥³¡¼¥É¡¦¾¦ÉÊ¥³¡¼¥É½¸Ìó(_ǯÅÙ,_·î,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É,_¶â³Û·î¹ç·×). ǯÅÙ¡¦·î¡¦Éô½ð¥³¡¼¥É¡¦¾¦ÉÊ¥³¡¼¥É½¸Ìó(_ǯÅÙ,_·î,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É,_¶â³Û¹ç·×) :- findsum(_¶â³Û,( ¥Æ¡¼¥Ö¥ë(_ǯÅÙ,_·î,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É,_¶â³Û)), _ǯÅÙ¡¦·î¡¦Éô½ð¥³¡¼¥É¡¦¾¦ÉÊ¥³¡¼¥É½¸Ìó). ǯÅÙ¡¦Éô½ð¥³¡¼¥É¡¦¾¦ÉÊ¥³¡¼¥É½¸Ìó(_ǯÅÙ,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É,_¶â³Û¹ç·×) :- findsum(_¶â³Û,( ¥Æ¡¼¥Ö¥ë(_ǯÅÙ,_·î,_Éô½ð¥³¡¼¥É,_¾¦ÉÊ¥³¡¼¥É,_¶â³Û)), _ǯÅÙ¡¦Éô½ð¥³¡¼¥É¡¦¾¦ÉÊ¥³¡¼¥É½¸Ìó). ¸°¤Ê¤é¤Ó¤ÎÀ¸À®(_¸°ÊÑ¿ô¤Ê¤é¤Ó,_½Ò¸ì,_¸°¤Ê¤é¤Ó) :- findsetof(_¸°ÊÑ¿ô¤Ê¤é¤Ó,_½Ò¸ì,_¸°¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/12 # # °Ê²¼¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤¬¤¢¤ë¤È¤·¤Þ¤¹¡£ # [¥Æ¡¼¥Ö¥ë̾:·ÐÈñTBL] # ²ñ¼Ò , Éô½ð , ǯÅÙ , ·î , ·ÐÈñ # ------------------------------- # AAA , AAA01 , 2009 , 1 , 10000 # AAA , AAA01 , 2009 , 1 , 20000 # AAA , AAA01 , 2009 , 2 , 30000 # AAA , AAA01 , 2009 , 3 , 40000 # BBB , AAA01 , 2009 , 4 , 50000 # BBB , AAA01 , 2010 , 1 , 60000 # CCC , AAA01 , 2010 , 1 , 70000 # CCC , AAA01 , 2010 , 1 , 80000 # # ¤³¤³¤«¤é°Ê²¼¤Î¤è¤¦¤Ê¡¢ # ²ñ¼ÒÊÌ¡¢Éô½ðÊ̤ν¸·×¥Ç¡¼¥¿¤òºîÀ®¤·¤¿¤¤¤È¤·¤Þ¤¹¡£ # ²ñ¼Ò , Éô½ð , 200901·ÐÈñ·× , 200902·ÐÈñ·× , ¡Ä , 201012·ÐÈñ·× # # ¤³¤Î»þ¡¢·ÐÈñ·×Îó¤Î¾ò·ï»ØÄê¤Ï¤É¤¦¤·¤¿¤éÎɤ¤¤Î¤Ç¤·¤ç¤¦¤«¡© # # '²ñ¼ÒÊÌ¡¢Éô½ðÊ̤ν¸·×¥Ç¡¼¥¿¤òºîÀ®¤·¤¿¤¤¤È¤·¤Þ¤¹¡£ ²ñ¼Ò , Éô½ð , 200901·ÐÈñ·× , 200902·ÐÈñ·× , ¡Ä , 2010122·ÐÈñ·× ' :- ¸«½Ð¤·É½¼¨, findsetof([_²ñ¼Ò,_Éô½ð],·ÐÈñTBL(_²ñ¼Ò,_Éô½ð,_,_,_),L1), append(_,[[_²ñ¼Ò,_Éô½ð]]|R],L1), findall(_·ÐÈñ·×,( ǯÅÙ¡¦·î¤ÎÀ¸À®(_ǯÅÙ,_·î), findsum(_·ÐÈñ,( ·ÐÈñTBL(_²ñ¼Ò,_Éô½ð,_ǯÅÙ,_·î,_·ÐÈñ)), _·ÐÈñ·×)), _·ÐÈñ¤Ê¤é¤Ó), concat_atom(_·ÐÈñ¤Ê¤é¤Ó,',',_·ÐÈñ·îÊÌɽ¼¨), write_formatted('%t,%t,%t\n',[_²ñ¼Ò,_Éô½ð,_·ÐÈñ·îÊÌɽ¼¨]), R = []. ǯÅÙ¡¦·î¤ÎÀ¸À®(2009,_·î) :- for(1,_·î,12). ǯÅÙ¡¦·î¤ÎÀ¸À®(2010,_·î) :- for(1,_·î,12). ¸«½Ð¤·É½¼¨ :- write(' ²ñ¼Ò , Éô½ð '), ǯÅÙ¤ÎÀ¸À®(_ǯ,_·î), write_formatted_atom(S,', %4d%02d·ÐÈñ·× ',[_ǯ,_·î]), write(S), fail. ¸«½Ð¤·É½¼¨ :- nl. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/8 # # ¤è¤¯¤¢¤ë¼ÁÌ䣳 # # ¡ÊÌä¡Ë # ID HOGE # 01 A # 01 B # 01 C # 02 A # 03 B # # HOGE¤òA¤âB¤âC¤â»ý¤Ã¤Æ¤¤¤ë¡¢ID¡§01¤À¤±¼è¤ê½Ð¤¹¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤«¤Ç¤¹¤« # # ¡ÊÅú£±¡Ë # SELECT id # FROM TableName # WHERE hoge in ('A','B','C') # GROUP BY id # HAVING count(DISTINCT hoge) = 3 # ; # # ¡ÊÅú£²¡Ë # select * # from TableName T1 # where not exists (select * # ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡from (values 'A', 'B', 'C') T2 (HOGE) # ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡where not exists (select * # ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡from TableName T3 # ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡where T1.ID = T3.ID # ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡and T2.HOGE = T3.HOGE # ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ) # ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ) # ; # ¢¨values¤ÎÉôʬ(Table Value Constructor)¤ÏDBMS¤Ë¤è¤Ã¤ÆÊ¸Ë¡¤¬¤«¤Ê¤ê°ã¤¦¤Î¤ÇÃí°Õ # # 'HOGE¤òA¤âB¤âC¤â»ý¤Ã¤Æ¤¤¤ë¡¢ID¡§01¤À¤±¼è¤ê½Ð¤¹'(L,_ID) :- findsetof(_ID,'TableName'(_ID,_)), ´Ø·¸¤Î³ä¤ê»»(_ID,L). ´Ø·¸¤Î³ä¤ê»»(_,[]):- !. ´Ø·¸¤Î³ä¤ê»»(_ID,[_HOGE|R]) :- 'TableName'(_ID,_HOGE), ´Ø·¸¤Î³ä¤ê»»(_ID,R). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/7 # # ¤è¤¯¤¢¤ë¼ÁÌ䣲 # # ¡ÊÌä¡Ë # key¡¡¡¡¡¡data # ---------------- # 1¡¡¡¡¡¡¡¡¡¡a # 1¡¡¡¡¡¡¡¡¡¡a # 1¡¡¡¡¡¡¡¡¡¡b # 1¡¡¡¡¡¡¡¡¡¡b # 1¡¡¡¡¡¡¡¡¡¡a # 2¡¡¡¡¡¡¡¡¡¡b # 2¡¡¡¡¡¡¡¡¡¡a # 2¡¡¡¡¡¡¡¡¡¡a # # ¤È¤¤¤¦¥Æ¡¼¥Ö¥ë¤«¤é # # key¡¡¡¡¡¡a¡¡¡¡¡¡b # -------------------- # 1¡¡¡¡¡¡¡¡3¡¡¡¡¡¡2 # 2¡¡¡¡¡¡¡¡2¡¡¡¡¡¡1 # # ¤È¤¤¤¦Excel¤Î¥Ô¥Ü¥Ã¥È¤ÎÍͤʥǡ¼¥¿¤ò¼èÆÀ¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢¤É¤¦¤¤¤¦SQL¤Ë¤Ê¤ê¤Þ¤¹¤«¡© # a,b¤È¤¤¤¦¤Î¤Ï¸ÇÄê¤Ê¤Î¤Ç¡¢²¾¤Ëc¤È¤¤¤¦¥Ç¡¼¥¿¤¬¤¢¤Ã¤Æ¤â̵»ë¤·¤Æ¹½¤¤¤Þ¤»¤ó¡£ # # ¡ÊÅú¡Ë # SELECT key, # ¡¡¡¡¡¡ SUM(CASE data WHEN 'a' THEN 1 END) AS a, # ¡¡¡¡¡¡ SUM(CASE data WHEN 'b' THEN 1 END) AS b # FROM table # GROUP BY key # ORDER BY key # ; # 'Excel¤Î¥Ô¥Ü¥Ã¥È¤ÎÍͤʥǡ¼¥¿¤ò¼èÆÀ¤·¤¿¤¤' :- findsetof(_data,table(_,_data),L1), findsetof(_key,table(_key,_data),L2), append(_,[_key|R],L2), findall(Count, count((append(_,[_data|_],L1),table(_key,_data)),Count), L3), concat_atom([_key|L3],',',S), write_formatted('%t\n',[S]), R = []. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1299305530/6 # # ¤è¤¯¤¢¤ë¼ÁÌ䣱 # # ¡ÊÌä¡Ë # ID | DATE¡¡¡¡¡¡¡¡ | DATA # --+----------+----- # 1 | 2007-11-11 | aaa # 2 | 2007-11-11 | bbb # 1 | 2007-11-10 | ccc # 3 | 2007-11-12 | ddd # 3 | 2007-11-11 | eee # 4 | 2007-11-10 | fff # 1 | 2007-11-12 | ggg # # ¤³¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤«¤é¡¢²¼µ­¤Î¤è¤¦¤Ë # # 1 | 2007-11-12 | ggg # 3 | 2007-11-12 | ddd # 2 | 2007-11-11 | bbb # 4 | 2007-11-10 | fff # # ³Æid¤ËÂФ·¤ÆºÇ¿·¤Î£±·ï¤À¤±Ãê½Ð¤¹¤ëSQL¤Î½ñ¤­Êý¤ò¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£ # # ¡ÊÅú¡Ë # select A.ID, # ¡¡¡¡¡¡ A.DATE, # ¡¡¡¡¡¡ A.DATA # from TableName A # ¡¡¡¡ inner join # ¡¡¡¡ (select ID, max(DATE) as MAX_DATE # ¡¡¡¡¡¡¡¡from TableName # ¡¡¡¡¡¡¡¡group by ID # ¡¡¡¡ ) B # ¡¡¡¡ on A.ID = B.ID # ¡¡¡¡ and A.DATE = B.MAX_DATE # ; # 'TableName'(1,'2007-11-11',aaa). 'TableName'(2,'2007-11-11',bbb). 'TableName'(1,'2007-11-10',ccc). 'TableName'(3,'2007-11-12',ddd). 'TableName'(3,'2007-11-11',eee). 'TableName'(4,'2007-11-10',fff). 'TableName'(1,'2007-11-12',ggg). '³Æid¤ËÂФ·¤ÆºÇ¿·¤Î£±·ï¤À¤±Ãê½Ð¤¹¤ë'(_ID,_DATE,_DATA) :- findsetof(_ID,'TableName'(_ID,_,_),L1), append(_,[_ID|_],L1), findmax([_DATE,_ID,_DATA],( 'TableName'(_ID,_DATE,_DATA)), [_DATE,_ID,_DATA]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/967 # # # ¢£DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó # Firebird 1.03 # ¢£¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ (Ãíʸ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¹¡Ë # ¡¦Main¡¡¼ç¾ðÊ󥯡¼¥Ö¥ëMID¤¬¥­¡¼ # MID¡¡HACCHUBI # 1 2011/03/01 # ¡¦DETAIL¡¡ÌÀºÙ¥Æ¡¼¥Ö¥ëDID¤¬¥­¡¼¡¡MID,IID¤¬»²¾È¥­¡¼ # DID¡¡MID¡¡IID¡¡KOSU # 1¡¡¡¡1¡¡¡¡1¡¡¡¡100 # 2¡¡¡¡1¡¡¡¡2¡¡¡¡30 # ¡¦ITEM¡¡¾¦Éʥơ¼¥Ö¥ëIID¤¬¥­¡¼ # IID¡¡NAMAE¡¡ZAIKO¡¡OPOINT¡¡BIKO # 1¡¡¡¡HOGE¡¡¡¡20¡¡¡¡10¡¡¡¡¡¡0 # 2¡¡¡¡HUGA¡¡¡¡50¡¡¡¡5¡¡¡¡¡¡ 1 # ¢£Íߤ·¤¤·ë²Ì # 2011/1/1¤«¤é1/31¤ÎÃíʸ¤Î¤¢¤Ã¤¿³Æ¥¢¥¤¥Æ¥à¤Î¸Ä¿ô(DETAIL.KOSU)¤ÎÊ¿¶ÑÃͤ¬10°Ê¾å¤Î¾ì¹ç¡¢ # ³ºÅö¤¹¤ë¥¢¥¤¥Æ¥à¤ÎÃíʸ¥é¥¤¥ó(ITEM.OPOINT)¤Ë¡¢¤½¤ÎÊ¿¶ÑÃͤòÆþ¤ì¤Æ¹¹¿·¡£Ê¿¶ÑÃͤ¬10̤Ëþ¤Î¾ì¹ç¡¢ # ITEM.OPOINT¤Ë0¤òÆþ¤ì¤ë¡£¤¿¤À¤·¥¢¥¤¥Æ¥à¤ÎÈ÷¹Í(ITEM.BIKO)¤¬1¤Î¾ì¹ç¤Ï¡¢ITEM.OPOINT¤Ë¤Ï # ¶õÍó¡ÊNULL¡Ë¤Ë¤¹¤ë¡£ # ¢£ÀâÌÀ # ¤È¤¤¤¤¤Þ¤¹¤«¡¢¾åµ­¤ÎÍߤ·¤¤·ë²Ì¤¬Á´¤Æ¤Ê¤Î¤Ç¤¹¤¬¡¢¤É¤¦½ñ¤¤¤Æ¤¤¤¤¤Î¤«¤Á¤ç¤Ã¤È¸«Åö¤¬¤Ä¤­¤Þ¤»¤ó¡£ # ºß¸Ë¤Î»ÅÆþ¤ì¤ò¤¹¤ë¸Ä¿ô(ITEM.OPOINT)¤ÎÀßÄê¤ò¥³¥ó¥Ô¥å¡¼¥¿¤Ë¤µ¤»¤è¤¦¤È¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¦¡¦¡¦¡£ # ´ÝÅꤲ¤Ç¿½¤·Ìõ¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤É¤Ê¤¿¤«¤ª´ê¤¤¤·¤Þ¤¹¡£ '2011/1/1¤«¤é1/31¤ÎÃíʸ¤Î¤¢¤Ã¤¿³Æ¥¢¥¤¥Æ¥à¤Î¸Ä¿ô(DETAIL.KOSU)¤ÎÊ¿¶ÑÃͤ¬10°Ê¾å¤Î¾ì¹ç¡¢³ºÅö¤¹¤ë¥¢¥¤¥Æ¥à¤ÎÃíʸ¥é¥¤¥ó(ITEM.OPOINT)¤Ë¡¢¤½¤ÎÊ¿¶ÑÃͤòÆþ¤ì¤Æ¹¹¿·¡£Ê¿¶ÑÃͤ¬10̤Ëþ¤Î¾ì¹ç¡¢ITEM.OPOINT¤Ë0¤òÆþ¤ì¤ë¡£¤¿¤À¤·¥¢¥¤¥Æ¥à¤ÎÈ÷¹Í(ITEM.BIKO)¤¬1¤Î¾ì¹ç¤Ï¡¢ITEM.OPOINT¤Ë¤Ï¶õÍó¡ÊNULL¡Ë¤Ë¤¹¤ë' :- findsetof(_MID,( 'Main'(_MID,_HACCHUBI), _HACCHUBI @>= '20110101', _HACCHUBI @=< '20110131'), L1), findsetof(_IID,( 'DETAIL'(_DID,_MID,_IID,_KOSU), append(_,[_MID|_],L1)), L2), append(_,[IID|R],L2), findavg(_KOSU,( 'DETAIL'(_DID,_MID,_IID,_KOSU), append(_,[_MID|_],L1)), AVG), 'ITEM¹¹¿·'(IID,AVG), R = []. 'ITEM¹¹¿·'(IID,AVG) :- retract('ITEM'(_IID,_NAMAE,_ZAIKO,_OPOINT,'1')), assertz('ITEM'(_IID,_NAMAE,_ZAIKO,'',_BIKO)),!. 'ITEM¹¹¿·'(IID,AVG) :- AVG >= 10, write_formatted_atom(S,'%t',[AVG]), retract('ITEM'(_IID,_NAMAE,_ZAIKO,_OPOINT,_BIKO)), assertz('ITEM'(_IID,_NAMAE,_ZAIKO,S,_BIKO)),!. 'ITEM¹¹¿·'(IID,AVG) :- AVG < 10, retract('ITEM'(_IID,_NAMAE,_ZAIKO,_,_BIKO)), assertz('ITEM'(_IID,_NAMAE,_ZAIKO,'0',_BIKO)),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1296387672/580 # # [1]¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥° # [2]ÌäÂêʸ # ôÅö¼Ô̾¤¬"end"¤Ë¤Ê¤ëËø¡¢Ã´Åö¼Ô̾¤ÈÇä¾å¤òÆþÎϤ¹¤ëŽ¡Çä¾å¹ç·×¤òµá¤á¤ë¡£ # [3]´Ä¶­ # ¡¡[3.1]OS:Windows # ¡¡[3.2]¥³¥ó¥Ñ¥¤¥é̾ Borland C++ compiler 5.5 # ¡¡[3.3]¸À¸ì:C # [4]´ü¸Â:̵´ü¸Â # 'ôÅö¼Ô̾¤¬"end"¤Ë¤Ê¤ëËø¡¢Ã´Åö¼Ô̾¤ÈÇä¾å¤òÆþÎϤ¹¤ëŽ¡Çä¾å¹ç·×¤òµá¤á¤ë¡£' :- abolish(ôÅö¼ÔÊÌÇä¾å/2), ôÅö¼Ô̾¤ÈÇä¾å¤òÆþÎϤ¹¤ë(_ôÅö¼Ô̾,_Çä¾å), 'ôÅö¼Ô̾¤¬"end"¤Ë¤Ê¤ëËø¡¢Ã´Åö¼Ô̾¤ÈÇä¾å¤òÆþÎϤ¹¤ëŽ¡Çä¾å¹ç·×¤òµá¤á¤ë¡£'(_ôÅö¼Ô̾,_Çä¾å),!. 'ôÅö¼Ô̾¤¬"end"¤Ë¤Ê¤ëËø¡¢Ã´Åö¼Ô̾¤ÈÇä¾å¤òÆþÎϤ¹¤ëŽ¡Çä¾å¹ç·×¤òµá¤á¤ë¡£' :- ôÅö¼ÔÊÌÇä¾å¹ç·×¤Îɽ¼¨, Çä¾å¹ç·×¤Îɽ¼¨. ôÅö¼Ô̾¤ÈÇä¾å¤òÆþÎϤ¹¤ë(_ôÅö¼Ô̾,_Çä¾å) :- write('ôÅö¼Ô̾¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), get_line(_ôÅö¼Ô̾), \+(_ôÅö¼Ô̾ = 'END'), write('Çä¾å¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤ : '), get_integer(_Çä¾å),!. 'ôÅö¼Ô̾¤¬"end"¤Ë¤Ê¤ëËø¡¢Ã´Åö¼Ô̾¤ÈÇä¾å¤òÆþÎϤ¹¤ëŽ¡Çä¾å¹ç·×¤òµá¤á¤ë¡£'(_ôÅö¼Ô̾,Çä¾å) :- assertz(ôÅö¼ÔÊÌÇä¾å(_ôÅö¼Ô̾,_Çä¾å)), ôÅö¼Ô̾¤ÈÇä¾å¤òÆþÎϤ¹¤ë(_ôÅö¼Ô̾2,_Çä¾å2), 'ôÅö¼Ô̾¤¬"end"¤Ë¤Ê¤ëËø¡¢Ã´Åö¼Ô̾¤ÈÇä¾å¤òÆþÎϤ¹¤ëŽ¡Çä¾å¹ç·×¤òµá¤á¤ë¡£'(_ôÅö¼Ô̾2,Çä¾å2). ôÅö¼ÔÊÌÇä¾å¹ç·×¤Îɽ¼¨ :- findsetof(_ôÅö¼Ô,( ôÅö¼ÔÊÌÇä¾å(_ôÅö¼Ô,_)), _ôÅö¼Ô¤Ê¤é¤Ó), append(_,[_ôÅö¼Ô|R],_ôÅö¼Ô¤Ê¤é¤Ó), findsum(_Çä¾å,ôÅö¼ÔÊÌÇä¾å(_ôÅö¼Ô,_Çä¾å),_ôÅö¼ÔÊÌÇä¾å¹ç·×), wr('ôÅö¼Ô:%t,Çä¾å¹ç·×:%t\n',[_ôÅö¼Ô,_ôÅö¼ÔÊÌÇä¾å¹ç·×]), R = []. Çä¾å¹ç·×¤Îɽ¼¨ :- findsum(_Çä¾å,ôÅö¼ÔÊÌÇä¾å(_,_Çä¾å),_Çä¾å¹ç·×), write_formatted('ÁíÇä¾å¹ç·×¤Ï %t ¤Ç¤¹¡£\n',[_Çä¾å¹ç·×]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/879 # # ¡¦DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó # oracle9i / 10g # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ # Éô½ðID ÂçʬÎà ÃæÊ¬Îà ¾®Ê¬Îà ͽ»» # -------+------+-------+------+--- # 01 01 01 01 2500 # 01 02 01 01 1000 # 01 02 02 02 100 # 02 01 01 01 100 # 02 01 02 02 0 # 02 02 02 02 1000 # 02 03 01 01 0 # 03 01 01 01 500 # # ¡¦Íߤ·¤¤·ë²Ì # ¾å¤Î¥Æ¡¼¥Ö¥ë¤Î»þ¡¢ # (ÂçʬÎà=01andͽ»»>50) and (ÂçʬÎà=02andͽ»»<2000) # ¤ÎÉô½ðID¤ò¼èÆÀ¤·¤¿¤¤¡£ # ¡¦ÀâÌÀ # ¤È¤ê¤¿¤¤·ë²Ì¤Ï01,02¤Ç¤¹¤¬¾å¤ÎSQL¤ò # ¤½¤Î¤Þ¤Þ½ñ¤¯¤ÈÅöÁ³·ë²Ì¤Ïnull¤Ç¤¹¤·¡¢ # ³ç¸Ì¤Î´Ö¤Îand¤òor¤Ë¤¹¤ë¤È03¤â¼èÆÀ¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ # ¤Ê¤Ë¤«Îɤ¤ÊýË¡¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡© # # ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿('01','01','01','01',2500). ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿('01','02','01','01',1000). ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿('01','02','02','02',100). ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿('02','01','01','01',100). ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿('02','01','02','02',0). ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿('02','02','02','02',1000). ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿('02','03','01','01',0). ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿('03','01','01','01',500). '(ÂçʬÎà=01andͽ»»>50) and (ÂçʬÎà=02andͽ»»<2000)¤ÎÉô½ðID¤ò¼èÆÀ¤·¤¿¤¤'(_Éô½ðID) :- findsetof([_Éô½ðID,_ÂçʬÎà],( ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿(_Éô½ðID,_ÂçʬÎà,_,_,_)), L), findall([_Éô½ðID,_ÂçʬÎà,_ͽ»»·×],( append(_,[[_Éô½ðID,_ÂçʬÎà]|_],L)), findsum(_ͽ»»,( ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿(_Éô½ðID,_ÂçʬÎà,_,_,_ͽ»»)), _ͽ»»·×)), _Éô½ðID¡¦ÂçʬÎࡦͽ»»·×¤Ê¤é¤Ó), append(_,[[_Éô½ðID,'01',_ͽ»»·×_1]|_],_Éô½ðID¡¦ÂçʬÎࡦͽ»»·×¤Ê¤é¤Ó), _ͽ»»·×_1 > 50, append(_,[[_Éô½ðID,'02',_ͽ»»·×_2]|_],_Éô½ðID¡¦ÂçʬÎࡦͽ»»·×¤Ê¤é¤Ó), _ͽ»»·×_2 < 2000. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/873 # # ¡¦DB¥Ð¡¼¥¸¥ç¥ó # MySQL5.0.77 # # id|¡²regDate_| # --+----------+ # 1 |2010-10-10| # 2 |2010-10-10| # 3 |2010-10-10| # 4 |2010-10-11| # 5 |2010-10-11| # 6 |2010-10-11| # 7 |2010-10-11| # 8 |2010-10-12| # 9 |2010-10-12| # 10|2010-10-12| # 11|2010-10-12| # # ¡¦Íߤ·¤¤·ë²Ì # ²¿·ï¥ì¥³¡¼¥É¤¬¤¢¤Ã¤¿¤«¤òÆüÊ̤˽ÐÎϤ·¤¿¤¤¡£ # # Îã¤È¤·¤Æ # _regDate__|·ï¿ô # ----------+- # 2010-10-10|3 # 2010-10-11|4 # 2010-10-12|4 # # ¤³¤¦¤Ê¤Ã¤Æ¤ë¤È¤¦¤ì¤·¤¤¤Ç¤¹¡£ # # ¡¦ÀâÌÀ # ¼«Á°¤Ç¥¯¥ê¥Ã¥¯¥«¥¦¥ó¥¿¡¼¤òºî¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£ # ¤Û¤«¤Ë¥«¥é¥à¤È¤·¤Æ¥æ¡¼¥¶¡¼¥¨¡¼¥¸¥§¥ó¥È¤ä¥ê¥â¡¼¥È¥Û¥¹¥È¤Î¥¢¥É¥ì¥¹¤òÀßÃÖ¤·¤Æ¤¢¤ê¤Þ¤·¤Æ # ÆüÊ̤˽¸·×¤·¤Æ¸«¤ì¤ë¤è¤¦¤Ë¤·¤¿¤¤¤È»×¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢PHP¤Ç¥ë¡¼¥×¤ò½ñ¤¤¤Æ½ÐÎϤ¹¤ë¤è¤ê # SQL¤ÎÌ䤤¹ç¤ï¤»Ãʳ¬¤Ç¡¢¾åµ­¤Î¤è¤¦¤ËÀ°·Á¤Ç¤­¤Ê¤¤¤«¤Ê¤È»×¤¤¤Þ¤·¤¿¡£ # # ¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£ # # ²¿·ï¥ì¥³¡¼¥É¤¬¤¢¤Ã¤¿¤«¤òÆüÊ̤˽ÐÎϤ¹¤ë :- write('-- ÆüÉÕ --|·ï¿ô\n'), findsetof(_ÆüÉÕ,¥Æ¡¼¥Ö¥ë(_id,_ÆüÉÕ),L), append(_,[_ÆüÉÕ|R],L), count(¥Æ¡¼¥Ö¥ë(_id,_ÆüÉÕ),_·ï¿ô), write_formatted('%t|%t\n',[_ÆüÉÕ,_·ï¿ô]), R = []. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/846 # # ¡¦DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó # ¡¡Microsoft Access2000 # # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ # ¡ÚITEM_COUNT¡Û # item_id | year | month | count # --------------------------- # 00001¡¡ | 2010 |¡¡¡¡ 1 | ¡¡150 # 00001¡¡ | 2010 |¡¡¡¡ 1 | ¡¡400 # 00001¡¡ | 2010 |¡¡¡¡ 2 | ¡¡ 20 # ¡¡ (ÃæÎ¬) # 00001¡¡ | 2010 |¡¡¡¡11 | ¡¡120 # 00001¡¡ | 2010 |¡¡¡¡11 | ¡¡ 50 # 00001¡¡ | 2010 |¡¡¡¡11 | ¡¡200 # 00001¡¡ | 2010 |¡¡¡¡12 | ¡¡ 30 # 00001¡¡ | 2011 |¡¡¡¡ 1 | ¡¡500 # 00001¡¡ | 2011 |¡¡¡¡ 1 | ¡¡100 # 00002¡¡ | 2010 |¡¡¡¡ 1 | ¡¡ 10 # 00002¡¡ | 2010 |¡¡¡¡ 2 | ¡¡ 30 # 00002¡¡ | 2010 |¡¡¡¡ 2 | ¡¡100 # ¡¡ (¸åά) # ¢¨Æ±¤¸id, year, month¤Î¥Ç¡¼¥¿¤¬Ê£¿ô¸ºß¤·¤Þ¤¹¡£ # # # ¡¦Íߤ·¤¤·ë²Ì # item_id | 1·î | 2·î | ¡Ä | 11·î | 12·î | 13·î # -------------------------------------------- # 00001¡¡ |¡¡550 |¡¡ 20 | ¡Ä |¡¡370 |¡¡ 30 |¡¡610 # 00002¡¡ |¡¡ 10 |¡¡130 | ¡Ä |¡¡(¸åά) # # ¢¨2010/1¡Á2011/1¤Î13¥ö·î´Ö¤ò1·î¡Á13·î¤È¤·¤Æ(2011/1¤ò13·î¤È¤·¤Æ)¤½¤ì¤¾¤ì½¸·×¤òµá¤á¤¿¤¤ # # # ¡¦ÀâÌÀ # ¸½¾õ¤Ï¡¢ # ------------------------------------ # SELECT # ¡¡year, item_id # FROM # ¡¡ITEM_COUNT # WHERE # ¡¡year=2010 # GROUP BY # ¡¡item_id, year # PIVOT # ¡¡Format(month,"#0·î") In ("1·î","2·î","3·î","4·î","5·î","6·î","7·î","8·î","9·î","10·î","11·î","12·î"); # ------------------------------------ # ¾å¤Î¥¯¥¨¥ê¤ò¡Ö½¸·×1¡×¡¢WHERE¶ç¤ò"year=2011"¤ËÊѹ¹¤·¤¿¤â¤Î¤ò¡Ö½¸·×2¡×¤È¤·¡¢ # ¼¡¤Î¥¯¥¨¥ê¤Ç·ë²Ì¤òµá¤á¤Æ¤¤¤Þ¤¹¡£ # ------------------------------------ # SELECT # ¡¡½¸·×1.item_id, ½¸·×1.[1·î], ½¸·×1.[2·î], ¡Ä , ½¸·×1.[12·î],½¸·×2.[1·î] AS 13·î # FROM # ¡¡½¸·×1 LEFT JOIN ½¸·×2 ON ½¸·×1.[item_id] = ½¸·×2.[item_id] # ------------------------------------ # # ¤·¤«¤·¤³¤ì¤À¤È2011/1¤Ë¤Î¤ß¥Ç¡¼¥¿¤¬¤¢¤ëitem_id¤¬½¸·×¤«¤é³°¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ # ¤³¤ì¤ò²óÈò¤¹¤ë¤Ë¤Ï¤É¤Î¤è¤¦¤Ëľ¤·¤¿¤éÎɤ¤¤Ç¤·¤ç¤¦¤«¡£ # # ǯÅÙ¤òË󤤤Ƿî¹ç·×¤òɽ¼¨¤¹¤ë :- findsetof([_item_id],( 'ITEM_COUNT'(_item_id,_year,_month,_count)), L1), findall([_item_id,_¹ç·×²ó¿ô¤Ê¤é¤Ó],( append(_,[_item_id|_],L1), '2010ǯ½¸·×'(_2010ǯcounts), '2011ǯ½¸·×'(_2011ǯcounts), append(_2010ǯcounts,_2011ǯcounts,_¹ç·×²ó¿ô¤Ê¤é¤Ó)), _½¸·×¤Ê¤é¤Ó), ¸«½Ð¤·É½¼¨, append(_,[[_itemp_id,_¹ç·×²ó¿ô¤Ê¤é¤Ó]|R],_½¸·×¤Ê¤é¤Ó), write_formatted(' %3d | %3d | %3d | %3d | %3d | %3d | %3d | %3d | %3d | %3d | %3d | %3d | %3d\n',_¹ç·×²ó¿ô¤Ê¤é¤Ó), R = []. ¸«½Ð¤·É½¼¨ :- append(_,[_·î|R],['1·î','2·î','3·î','4·î','5·î','6·î','7·î','8·î','9·î','10·î','11·î','12·î']), write_formatted(' %3s |',[_·î]), R = [], write(' 13·î\n'),!. '2010ǯ½¸·×'(_item_id,2010,_month,_¹ç·×²ó¿ô) :- for(1,_month,12), findsum(_count,'ITEM_COUNT'(_item_id,2000,_month,_count),_¹ç·×²ó¿ô). '2011ǯ½¸·×'(_item_id,2011,_month,_¹ç·×²ó¿ô) :- findsum(_count,'ITEM_COUNT'(_item_id,2011,1,_count),_¹ç·×²ó¿ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/815 # # ¤³¤ó¤Ê¥ì¥³¡¼¥É¤¬³ÊǼ¤µ¤ì¤Æ¤¤¤ë¤È¤·¤Þ¤¹¡£ # ID,NO # 100,1 # 102,2 # 101,3 # 200,1 # 201,2 # 202,3 # ¤³¤Î¾ì¹ç¡¢ID¤ò100ÈÖÂæ¡¢200ÈÖÂæ¤Ç¥°¥ë¡¼¥Ô¥ó¥°¤·¤Æ¡¢³Æ¥°¥ë¡¼¥×Ëè¤ËNO½ç¤ËSELECT¤Ç½ÐÎϤ·¤è¤¦¤È¤·¤¿¾ì¹ç¡¢¤É¤Î¤è¤¦¤Ê¾ò·ï¤Ë¤¹¤ì¤Ð¤è¤¤¤Ç¤·¤ç¤¦¤«¡© # ID¤Ï¤³¤ÎÎã¤Ç¤Ï3·å¤Ç¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï6·åÄø¤¢¤ê¡¢½ÐÍè¤ì¤ÐWHERE¶ç¤Ç¿ô»ú¤òÆþ¤ì¤Æ»ØÄꤹ¤ë¤è¤¦¤Ê»ö¤Ï¤»¤º¤ËʤÓÂØ¤¨¤¬½ÐÍè¤ë¤È´ò¤·¤¤¤Ç¤¹¡£ # Íפϡ¢¥ì¥³¡¼¥É¤¬Áý¤¨¤Æ¥°¥ë¡¼¥×¤¬Áý¤¨¤¿¤ê¤·¤Æ¤â¡¢¾ò·ï¤òÊѤ¨¤º¤ËʤÓÂØ¤¨¤¬½ÐÍè¤ë¤è¤¦¤Ê¤â¤Î¤¬Îɤ¤¤Î¤Ç¤¹¤¬¡¢²Äǽ¤Ç¤·¤ç¤¦¤«¡© # µ¹¤·¤¯¤´¶µ¼¨´ê¤¤¤Þ¤¹¡£ # # 'ID¤ò100ÈÖÂæ¡¢200ÈÖÂæ¤Ç¥°¥ë¡¼¥Ô¥ó¥°¤·¤Æ¡¢³Æ¥°¥ë¡¼¥×Ëè¤ËNO½ç¤Ë½ÐÎϤ¹¤ë' :- findsetof(_ID,( ¥Æ¡¼¥Ö¥ë(_ID,_NO), _ID_1 is (_ID // 100) + 1), _ID¥°¥ë¡¼¥×¤Ê¤é¤Ó), findall(LL1,( append(_,[_ID_1|_],_ID¥°¥ë¡¼¥×¤Ê¤é¤Ó), findall([_NO,_ID],( ¥Æ¡¼¥Ö¥ë(_ID,_NO), _ID_1 is (_ID // 100) + 1), LL1)), LL2), ³Æ¥°¥ë¡¼¥×Ëè¤ËNO½ç¤Ë½ÐÎϤ¹¤ë(LL2). ³Æ¥°¥ë¡¼¥×Ëè¤ËNO½ç¤Ë½ÐÎϤ¹¤ë(LL) :- append(_,[L1|R1],LL), À°Îó(L1,L2), append(_,[[_NO,_ID]|R2],L2), write_formatted('%t,%t\n',[_ID,_NO]), R2 = [], R1 = [],!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1294061094/666 # # [1] ¼ø¶Èñ¸µ¡§ # [2] ÌäÂêʸ¡§ http://ime.nu/ux.getuploader.com/sanada1678/download/17/%E3%82%B3%E3%83%94%E3%83%BC+%EF%BD%9E+%E8%AA%B2%E9%A1%8C.csv # # ¤¢¤ëÃó¼Ö¾ì¤¬Ãë´Ö£²£°Ê¬£±£°£°±ß¤ÎÎÁ¶â¤ÇÃó¼Ö¾ì¤òÂߤ·¤Æ¤¤¤Þ¤¹¡£ # º¸¤Î¥Ç¡¼¥¿¤ÏÆþ½Ð¸Ë¤Î¥Ç¡¼¥¿¤Ç¤¹¡£ # Ãó¼Ö»þ´Ö¤ÎŤµ¤ÎʬÎà¤Ï¤ª¤â¤Ë # 20ʬ,£´£°Ê¬,£±»þ´Ö,£²»þ´Ö,£¶»þ´Ö,£±£²»þ´Ö,£²£´»þ´Ö°Ê¾å # ¤Ç¤¹¡£¤³¤ì¤ò¤â¤È¤Ë¼¡¤ÎÌäÂê¤ò²ò·è¤»¤è¡£ # # Ëè»þ00ʬ»þÅÀ¤Ç¤Î¡Ê¤Ä¤Þ¤ê£±»þ´Ö¤´¤È¤Î¡Ë # Ãó¼Ö¤·¤Æ¤¤¤ëÃó¼ÖÂæ¿ô¤ò¼«Æ°·×»»¤¹¤ë¤è¤¦¤Ëɽ·×»»¤Î¥×¥í¥°¥é¥à¤òºîÀ®¤·¤¿¤¤¡£ # # £±¡¥£±»þ´Ö¤Î´Ö¡Ê¤¿¤È¤¨¤Ð¤½¤ÎÆü¤Î£±£³»þ¤«¤é£±£´»þ¡Ë¤ËÆþ¾ì¤·¤Æ¤­¤¿¼Ö¤ÎÂæ¿ô # ¡¡¡¡¤½¤Î»þ´ÖÆâ¤ËÀ¶»»¤·¤Æ½Ð¾ì¤·¤Æ¹Ô¤Ã¤¿Âæ¿ô¤ò¼«Æ°·×»»¤¹¤ë¤è¤¦¤Ëɽ·×»»¤Î # ¡¡¡¡¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£¤½¤Î·ë²Ì¤È¤·¤Æ¡¢00ʬ»þÅÀ¤Ç¤ÎÃó¼ÖÂæ¿ô¤¬¼«Æ°·×»»¤Ç¤­¤ë # ¡¡¡¡¤è¤¦¤Ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # # £²¡¥°ìÄê´ü´ÖÆâ(Î㤨¤Ð£±Æü¤ä°ì½µ´Ö¤ÈÆÃÄꤷ¤Æ)¤Ç¤Î # ¡¡¡¡Ãó¼Ö»þ´Ö¤ÎŤµ¤ÇʬÎष¤¿Âæ¿ô # ¡¡¡¡¤¿¤È¤¨¤Ð¡¡30ʬ°ÊÆâ¡¤1H¡¤2H¡¤6H¡¤12H¡¤24H°Ê¾å # ¡¡¡¡¤¬¼«Æ°·×»»¤Ç¤­¤ë¤è¤¦¤Ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # # £³¡¥¤È¤ê¤¢¤¨¤ººÇ½é¤ËÃó¼Ö¤·¤Æ¤¤¤¿Âæ¿ô¤ò£°Âæ¤È¤·¤ÆÉ½¤òºîÀ®¤»¤è¡£ # ¡¡¡¡¤½¤ì¤¬½ÐÍ褿¤éºÇ½é¤ËÃó¼Ö¤·¤Æ¤¤¤¿Âæ¿ô¤òǤ°Õ¤ËÀßÄꤹ¤ë¤³¤È¤Ç # ¡¡¡¡¤½¤Î¸å¤ÎÃó¼Ö¤·¤Æ¤¤¤ëÂæ¿ô¤ò¼«Æ°·×»»¤Ç¤­¤ë¤è¤¦¤Ëɽ¤òºîÀ®¤»¤è¡£ # # £±£±·î¡¢£±£²·î¤Ê¤É¤Î¥Ç¡¼¥¿¤òÆþÎϤ·¤Æ¤â½Ö»þ¤Ë·×»»¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¯¡£ # Ìë´Ö¤ÎÃó¼ÖÎÁ¶â¤Ê¤É¤â¥Ç¡¼¥¿¤«¤é¿ä¬¤»¤è¡£ # # 2010/10/31 20:38,2010/10/31 23:24,,300,300,,,,,,,,, # 2010/10/31 10:47,2010/10/31 22:12,,600,600,,,,,,,,, # 2010/10/31 12:25,2010/10/31 22:06,,600,600,,,,,,,,, # 2010/10/31 19:13,2010/10/31 21:52,,500,500,,,,,,,,, # 2010/10/31 18:49,2010/10/31 21:50,,600,600,,,,,,,,, # 2010/10/31 15:30,2010/10/31 21:45,,600,600,,,,,,,,, # 2010/10/31 10:06,2010/10/31 21:37,,600,600,,,,,,,,, # 2010/10/30 21:57,2010/10/31 21:32,,600,600,,,,,,,,, # 2010/10/31 13:02,2010/10/31 21:29,,600,600,,,,,,,,, # 2010/10/31 20:25,2010/10/31 21:16,,100,100,,,,,,,,, # 2010/10/30 21:19,2010/10/31 21:02,,600,600,,,20,,,,,, # 2010/10/31 9:43,2010/10/31 20:53,,600,600,,,,,,,,, # 2010/10/31 17:45,2010/10/31 20:43,,600,600,,,,,,,,, # 2010/10/31 18:38,2010/10/31 20:38,,600,600,,,00,,,,,, # 2010/10/29 6:53,2010/10/31 20:23,,1800,1800,,,,,,,,, # 2010/10/31 8:04,2010/10/31 19:53,,600,600,,,,,,,,, # 2010/10/31 5:32,2010/10/31 19:25,,600,600,,,,,,,,, # 2010/10/31 12:19,2010/10/31 19:15,,600,600,,,,,,,,, # 2010/10/31 5:53,2010/10/31 19:09,,600,600,,,00,,,,,, /* '¤¢¤ëÃó¼Ö¾ì¤¬Ãë´Ö£²£°Ê¬£±£°£°±ß¤ÎÎÁ¶â¤ÇÃó¼Ö¾ì¤òÂߤ·¤Æ¤¤¤Þ¤¹¡£'. */ 'º¸¤Î¥Ç¡¼¥¿¤ÏÆþ½Ð¸Ë¤Î¥Ç¡¼¥¿¤Ç¤¹¡£'(_Æþ½Ð¸Ë¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë,_Æþ½Ð¸Ë¥Ç¡¼¥¿¤Ê¤é¤Ó) :- get_split_lines(_Æþ½Ð¸Ë¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë,[','],_Æþ½Ð¸Ë¥Ç¡¼¥¿¤Ê¤é¤Ó). /* 'Ãó¼Ö»þ´Ö¤ÎŤµ¤ÎʬÎà¤Ï¤ª¤â¤Ë£²£°Ê¬,£´£°Ê¬,£±»þ´Ö,£²»þ´Ö,£¶»þ´Ö,£±£²»þ´Ö,£²£´»þ´Ö°Ê¾å¤Ç¤¹¡£'(_Ãó¼Ö³«»Ï»þ¹ï,_Ãó¼Ö½ªÎ»»þ¹ï,_Ãó¼Ö»þ´Ö) :- Ãó¼Ö»þ´Ö¤ÏƱ°ìÆü¤Ç¤¢¤ë(_Ãó¼Ö³«»Ï»þ¹ï,_Ãó¼Ö½ªÎ»»þ¹ï). 'Ãó¼Ö»þ´Ö¤ÎŤµ¤ÎʬÎà¤Ï¤ª¤â¤Ë£²£°Ê¬,£´£°Ê¬,£±»þ´Ö,£²»þ´Ö,£¶»þ´Ö,£±£²»þ´Ö,£²£´»þ´Ö°Ê¾å¤Ç¤¹¡£'(_Ãó¼Ö³«»Ï»þ¹ï,_Ãó¼Ö½ªÎ»»þ¹ï,_Ãó¼Ö»þ´Ö) :- \+(Ãó¼Ö»þ´Ö¤ÏƱ°ìÆü¤Ç¤¢¤ë(_Ãó¼Ö³«»Ï»þ¹ï,_Ãó¼Ö½ªÎ»»þ¹ï)). */ 'Ëè»þ00ʬ»þÅÀ¤Ç¤Î¡Ê¤Ä¤Þ¤ê£±»þ´Ö¤´¤È¤Î¡ËÃó¼Ö¤·¤Æ¤¤¤ëÃó¼ÖÂæ¿ô¤ò¼«Æ°·×»»¤¹¤ë'(_Ëè»þ00ʬ»þÅÀ¤Ç¤ÎÃó¼Ö¤·¤Æ¤¤¤ëÃó¼ÖÂæ¿ô¤Ê¤é¤Ó) :- 'º¸¤Î¥Ç¡¼¥¿¤ÏÆþ½Ð¸Ë¤Î¥Ç¡¼¥¿¤Ç¤¹¡£'(_Æþ½Ð¸Ë¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë,_Æþ½Ð¸Ë¥Ç¡¼¥¿¤Ê¤é¤Ó), 'Ëè»þ00ʬ»þÅÀ¤Ç¤Î¡Ê¤Ä¤Þ¤ê£±»þ´Ö¤´¤È¤Î¡ËÃó¼Ö¤·¤Æ¤¤¤ëÃó¼ÖÂæ¿ô¤ò¼«Æ°·×»»¤¹¤ë¤è¤¦¤Ëɽ·×»»¤Î¥×¥í¥°¥é¥à¤òºîÀ®¤·¤¿¤¤¡£'(_Æþ½Ð¸Ë¥Ç¡¼¥¿¤Ê¤é¤Ó,_Ëè»þ00ʬ»þÅÀ¤Ç¤ÎÃó¼Ö¤·¤Æ¤¤¤ëÃó¼ÖÂæ¿ô¤Ê¤é¤Ó). 'Ëè»þ00ʬ»þÅÀ¤Ç¤Î¡Ê¤Ä¤Þ¤ê£±»þ´Ö¤´¤È¤Î¡ËÃó¼Ö¤·¤Æ¤¤¤ëÃó¼ÖÂæ¿ô¤ò¼«Æ°·×»»¤¹¤ë'(LL,LL2) :- findsetof([_ǯ,_·î,_Æü,_»þ],( append(_,[L|R1],LL), ȯÀ¸¤·¤¿Ç¯¡¦·î¡¦Æü¡¦»þ(L,_ǯ,_·î,_Æü,_»þ)), LL1), findall([_ǯ,_·î,_Æü,_»þ,_Ãó¼ÖÂæ¿ô],( append(_,[[_ǯ,_·î,_Æü,_»þ]|_],LL1), 'Ëè»þ00ʬ»þÅÀ¤Ç¤Î¡Ê¤Ä¤Þ¤ê£±»þ´Ö¤´¤È¤Î¡ËÃó¼Ö¤·¤Æ¤¤¤ëÃó¼ÖÂæ¿ô'(LL,_ǯ,_·î,_Æü,_»þ,_Ãó¼ÖÂæ¿ô)), LL2). ȯÀ¸¤·¤¿Ç¯¡¦·î¡¦Æü¡¦»þ([_»þ¹ï|_],_ǯ,_·î,_Æü,_»þ) :- split(_»þ¹ï,[' ','/',':'],[_ǯ,_·î,_Æü,_»þ|_]). ȯÀ¸¤·¤¿Ç¯¡¦·î¡¦Æü¡¦»þ([_,_»þ¹ï|_],_ǯ,_·î,_Æü,_»þ) :- split(_»þ¹ï,[' ','/',':'],[_ǯ,_·î,_Æü,_»þ|_]). 'Ëè»þ00ʬ»þÅÀ¤Ç¤Î¡Ê¤Ä¤Þ¤ê£±»þ´Ö¤´¤È¤Î¡ËÃó¼Ö¤·¤Æ¤¤¤ëÃó¼ÖÂæ¿ô'(LL,_ǯ,_·î,_Æü,_»þ,_Ãó¼ÖÂæ¿ô) :- count(( member([A,B|_],LL), split(A,['/',' ',':'],LA), split(B,['/',' ',':'],LB), LA @=< [_ǯ,_·î,_Æü,_»þ,0], LB @>= [_ǯ,_·î,_Æü,_»þ,0]), _Ãó¼ÖÂæ¿ô),!. '£±»þ´Ö¤Î´Ö¡Ê¤¿¤È¤¨¤Ð¤½¤ÎÆü¤Î£±£³»þ¤«¤é£±£´»þ¡Ë¤ËÆþ¾ì¤·¤Æ¤­¤¿¼Ö¤ÎÂæ¿ô¤½¤Î»þ´ÖÆâ¤ËÀ¶»»¤·¤Æ½Ð¾ì¤·¤Æ¹Ô¤Ã¤¿Âæ¿ô¤ò¼«Æ°·×»»¤¹¤ë'(LL,_ǯ,_·î,_Æü,_»þ,_Æþ¾ì¼Ö¿ô,_½Ð¾ì¼Ö¿ô) :- count(( member([A|_],LL), split(A,['/',' ',':'],LA), LA @>= [_ǯ,_·î,_Æü,_»þ,0], LA @=< [_ǯ,_·î,_Æü,_»þ,59]), _Æþ¾ì¼Ö¿ô), count(( member([_,A|_],LL), split(A,['/',' ',':'],LA), LA @>= [_ǯ,_·î,_Æü,_»þ,0], LA @=< [_ǯ,_·î,_Æü,_»þ,59]), _½Ð¾ì¼Ö¿ô),!. '°ìÄê´ü´ÖÆâ(Î㤨¤Ð£±Æü¤ä°ì½µ´Ö¤ÈÆÃÄꤷ¤Æ)¤Ç¤ÎÃó¼Ö»þ´Ö¤ÎŤµ¤ÇʬÎष¤¿Âæ¿ô¤¿¤È¤¨¤Ð30ʬ°ÊÆâ¡¤1H¡¤2H¡¤6H¡¤12H¡¤24H°Ê¾å¤ò¼«Æ°·×»»¤¹¤ë'(LL,_»þ¹ï²¼¸Â,_»þ¹ï¾å¸Â,_30ʬ°ÊÆâ,_1H,_2H,_6H,_12H,_24H,_24H°Ê¾å) :- '°ìÄê´ü´ÖÆâ(Î㤨¤Ð£±Æü¤ä°ì½µ´Ö¤ÈÆÃÄꤷ¤Æ)¤Ç¤ÎÃó¼Ö»þ´Ö¤ÎŤµ¤ÇʬÎष¤¿Âæ¿ô¤¿¤È¤¨¤Ð30ʬ°ÊÆâ¡¤1H¡¤2H¡¤6H¡¤12H¡¤24H°Ê¾å¤ò¼«Æ°·×»»¤¹¤ë'(LL,_»þ¹ï²¼¸Â,_»þ¹ï¾å¸Â,0,0,0,0,0,0,0,_30ʬ°ÊÆâ,_1H,_2H,_6H,_12H,_24H,_24H°Ê¾å). '°ìÄê´ü´ÖÆâ(Î㤨¤Ð£±Æü¤ä°ì½µ´Ö¤ÈÆÃÄꤷ¤Æ)¤Ç¤ÎÃó¼Ö»þ´Ö¤ÎŤµ¤ÇʬÎष¤¿Âæ¿ô¤¿¤È¤¨¤Ð30ʬ°ÊÆâ¡¤1H¡¤2H¡¤6H¡¤12H¡¤24H°Ê¾å¤ò¼«Æ°·×»»¤¹¤ë'([],_»þ¹ï²¼¸Â,_»þ¹ï¾å¸Â,_30ʬ°ÊÆâ,_1H,_2H,_6H,_12H,_24H,_24H°Ê¾å,_30ʬ°ÊÆâ,_1H,_2H,_6H,_12H,_24H,_24H°Ê¾å) :- !. '°ìÄê´ü´ÖÆâ(Î㤨¤Ð£±Æü¤ä°ì½µ´Ö¤ÈÆÃÄꤷ¤Æ)¤Ç¤ÎÃó¼Ö»þ´Ö¤ÎŤµ¤ÇʬÎष¤¿Âæ¿ô¤¿¤È¤¨¤Ð30ʬ°ÊÆâ¡¤1H¡¤2H¡¤6H¡¤12H¡¤24H°Ê¾å¤ò¼«Æ°·×»»¤¹¤ë'([[_Æþ¾ì»þ¹ï,_½Ð¾ì»þ¹ï|_]|R],_»þ¹ï²¼¸Â,_»þ¹ï¾å¸Â,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_1,_30ʬ°ÊÆâ,_1H,_2H,_6H,_12H,_24H,_24H°Ê¾å) :- split(_Æþ¾ì»þ¹ï,[' ','/',':'],[_ǯ_1,_·î_1,_Æü_1,_»þ_1,_ʬ_1]), split(_½Ð¾ì»þ¹ï,[' ','/',':'],[_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2]), [_ǯ_1,_·î_1,_Æü_1,_»þ_1,_ʬ_1] @>= _»þ¹ï²¼¸Â, [_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2] @=< _»þ¹ï¾å¸Â, Æþ¾ì»þ¹ï¤È½Ð¾ì»þ¹ï¤Î»þ´Öº¹Ê¬Ã±°Ì(_Æþ¾ì»þ¹ï,_½Ð¾ì»þ¹ï,_»þ´Öº¹Ê¬Ã±°Ì), »þ´Öº¹Ã±°Ì(_»þ´Öº¹Ê¬Ã±°Ì,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_1,_30ʬ°ÊÆâ_2,_2H_2,_2H_2,_6H_2,_22H_2,_24H_2,_24H°Ê¾å_2), '°ìÄê´ü´ÖÆâ(Î㤨¤Ð£±Æü¤ä°ì½µ´Ö¤ÈÆÃÄꤷ¤Æ)¤Ç¤ÎÃó¼Ö»þ´Ö¤ÎŤµ¤ÇʬÎष¤¿Âæ¿ô¤¿¤È¤¨¤Ð30ʬ°ÊÆâ¡¤1H¡¤2H¡¤6H¡¤12H¡¤24H°Ê¾å¤ò¼«Æ°·×»»¤¹¤ë'(R,_»þ¹ï²¼¸Â,_»þ¹ï¾å¸Â,_30ʬ°ÊÆâ_2,_1H_2,_2H_2,_6H_2,_12H_2,_24H_2,_24H°Ê¾å_2,_30ʬ°ÊÆâ,_1H,_2H,_6H,_12H,_24H,_24H°Ê¾å). '°ìÄê´ü´ÖÆâ(Î㤨¤Ð£±Æü¤ä°ì½µ´Ö¤ÈÆÃÄꤷ¤Æ)¤Ç¤ÎÃó¼Ö»þ´Ö¤ÎŤµ¤ÇʬÎष¤¿Âæ¿ô¤¿¤È¤¨¤Ð30ʬ°ÊÆâ¡¤1H¡¤2H¡¤6H¡¤12H¡¤24H°Ê¾å¤ò¼«Æ°·×»»¤¹¤ë'([_|R],_»þ¹ï²¼¸Â,_»þ¹ï¾å¸Â,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_1,_30ʬ°ÊÆâ,_1H,_2H,_6H,_12H,_24H,_24H°Ê¾å) :- '°ìÄê´ü´ÖÆâ(Î㤨¤Ð£±Æü¤ä°ì½µ´Ö¤ÈÆÃÄꤷ¤Æ)¤Ç¤ÎÃó¼Ö»þ´Ö¤ÎŤµ¤ÇʬÎष¤¿Âæ¿ô¤¿¤È¤¨¤Ð30ʬ°ÊÆâ¡¤1H¡¤2H¡¤6H¡¤12H¡¤24H°Ê¾å¤ò¼«Æ°·×»»¤¹¤ë'(R,_»þ¹ï²¼¸Â,_»þ¹ï¾å¸Â,_30ʬ°ÊÆâ_1,_1H_1,_1H_1,_6H_1,_12H_1,_14H_1,_14H°Ê¾å_1,_30ʬ°ÊÆâ,_1H,_1H,_6H,_12H,_14H,_14H°Ê¾å). »þ´Öº¹Ã±°Ì(_ʬ,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_1,_30ʬ°ÊÆâ_2,_1H_1,_2H_1,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_1) :- _ʬ =< 30, _30ʬ°ÊÆâ_2 is _30ʬ°ÊÆâ_1 + 1,!. »þ´Öº¹Ã±°Ì(_ʬ,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_1,_30ʬ°ÊÆâ_1,_1H_2,_2H_1,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_1) :- _ʬ >= 30,_ʬ < 60, _1H_2 is _1H_1 + 1,!. »þ´Öº¹Ã±°Ì(_ʬ,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_1,_30ʬ°ÊÆâ_1,_1H_1,_2H_2,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_1) :- _ʬ >= 60,_ʬ < 120, _2H_2 is _2H_1 + 1,!. »þ´Öº¹Ã±°Ì(_ʬ,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_1,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_2,_12H_1,_24H_1,_24H°Ê¾å_1) :- _ʬ >= 120,_ʬ < 360, _6H_2 is _6H_1 + 1,!. »þ´Öº¹Ã±°Ì(_ʬ,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_1,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_1,_12H_2,_24H_1,_24H°Ê¾å_1) :- _ʬ >= 360,_ʬ < 720, _12H_2 is _12H_1 + 1,!. »þ´Öº¹Ã±°Ì(_ʬ,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_1,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_1,_12H_1,_24H_2,_24H°Ê¾å_1) :- _ʬ >= 720,_ʬ < 1440, _24H_2 is _24H_1 + 1,!. »þ´Öº¹Ã±°Ì(_ʬ,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_1,_30ʬ°ÊÆâ_1,_1H_1,_2H_1,_6H_1,_12H_1,_24H_1,_24H°Ê¾å_2) :- _ʬ >= 1440, _24H°Ê¾å_2 is _24H°Ê¾å_1 + 1,!. '¤È¤ê¤¢¤¨¤ººÇ½é¤ËÃó¼Ö¤·¤Æ¤¤¤¿Âæ¿ô¤ò£°Âæ¤È¤·¤ÆÉ½¤òºîÀ®¤»¤è¡£¤½¤ì¤¬½ÐÍ褿¤éºÇ½é¤ËÃó¼Ö¤·¤Æ¤¤¤¿Âæ¿ô¤òǤ°Õ¤ËÀßÄꤹ¤ë¤³¤È¤Ç¤½¤Î¸å¤ÎÃó¼Ö¤·¤Æ¤¤¤ëÂæ¿ô¤ò¼«Æ°·×»»¤Ç¤­¤ë¤è¤¦¤Ëɽ¤òºîÀ®¤»¤è¡£'. '£±£±·î¡¢£±£²·î¤Ê¤É¤Î¥Ç¡¼¥¿¤òÆþÎϤ·¤Æ¤â½Ö»þ¤Ë·×»»¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¯¡£Ìë´Ö¤ÎÃó¼ÖÎÁ¶â¤Ê¤É¤â¥Ç¡¼¥¿¤«¤é¿ä¬¤»¤è¡£'. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Æþ¾ì»þ¹ï¤È½Ð¾ì»þ¹ï¤Î»þ´Öº¹Ê¬Ã±°Ì(_Æþ¾ì»þ¹ï,_½Ð¾ì»þ¹ï,_»þ´Öº¹Ê¬Ã±°Ì) :- atom(_Æþ¾ì»þ¹ï), atom(_½Ð¾ì»þ¹ï), split(_Æþ¾ì»þ¹ï,['/',' ',':'],[_ǯ_1,_·î_1,_Æü_1,_»þ_1,_ʬ_1]), split(_½Ð¾ì»þ¹ï,['/',' ',':'],[_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2]), ½Ð¾ì»þ¹ï¤ÈÆþ¾ì»þ¹ï¤Î»þ´Öº¹Ê¬Ã±°Ì([_ǯ_1,_·î_1,_Æü_1,_»þ_1,_ʬ_1],[_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2],_»þ´Öº¹Ê¬Ã±°Ì). Æþ¾ì»þ¹ï¤È½Ð¾ì»þ¹ï¤Î»þ´Öº¹Ê¬Ã±°Ì([_ǯ,_·î,_Æü,_»þ,_ʬ_1],[_ǯ,_·î,_Æü,_»þ,_ʬ_2],_»þ´Öº¹Ê¬Ã±°Ì) :- _»þ´Öº¹Ê¬Ã±°Ì is _ʬ2 - _ʬ1,!. Æþ¾ì»þ¹ï¤È½Ð¾ì»þ¹ï¤Î»þ´Öº¹Ê¬Ã±°Ì([_ǯ,_·î,_Æü,_»þ_1,_ʬ_1],[_ǯ,_·î,_Æü,_»þ_2,_ʬ_2],_»þ´Öº¹Ê¬Ã±°Ì) :- _»þ´Öº¹Ê¬Ã±°Ì is (60 * _»þ_2 + _ʬ_2) - (60 * _»þ_1 + _ʬ1),!. Æþ¾ì»þ¹ï¤È½Ð¾ì»þ¹ï¤Î»þ´Öº¹Ê¬Ã±°Ì([_ǯ,_·î,_Æü_1,_»þ_1,_ʬ_1],[_ǯ,_·î,_Æü_2,_»þ_2,_ʬ_2],_»þ´Öº¹Ê¬Ã±°Ì) :- _»þ´Öº¹Ê¬Ã±°Ì is (1440 * _Æü_2 + 60 * _»þ_2 + _ʬ_2) - (1440 * _Æü_1 + 60 * _»þ_1 + _ʬ1),!. Æþ¾ì»þ¹ï¤È½Ð¾ì»þ¹ï¤Î»þ´Öº¹Ê¬Ã±°Ì([_ǯ,_·î_1,_Æü_1,_»þ_1,_ʬ_1],[_ǯ,_·î_2,_Æü_2,_»þ_2,_ʬ_2],_»þ´Öº¹Ê¬Ã±°Ì) :- _·î_2_1 is _·î_2 - 1, findsum(_·îÆü¿ô,( for(_·î_1,_·î,_·î_2_1), ·îÆü¿ô(_ǯ_1,_·î,_·îÆü¿ô)), _·îÆü¿ô¹ç·×¤Î°ì), _·îÆü¿ô¹ç·× is truncate(_·îÆü¿ô¹ç·×¤Î°ì), _»þ´Öº¹Ê¬Ã±°Ì is (1440 * _·îÆü¿ô¹ç·× + 1440 * _Æü_2 + 60 * _»þ_2 + _ʬ_2) - (1440 * _Æü_1 + 60 * _»þ_1 + _ʬ_1),!. Æþ¾ì»þ¹ï¤È½Ð¾ì»þ¹ï¤Î»þ´Öº¹Ê¬Ã±°Ì([_ǯ_1,_·î_1,_Æü_1,_»þ_1,_ʬ_1],[_ǯ_2,_·î_2,_Æü_2,_»þ_2,_ʬ_2],_»þ´Öº¹Ê¬Ã±°Ì) :- _ǯ_2_1 is _ǯ_2 - 1, findsum(_ǯÆü¿ô,( for(_ǯ_1,_ǯ,_ǯ_2_1), ǯÆü¿ô(_ǯ,_ǯÆü¿ô)), _ǯÆü¿ô¹ç·×¤Î°ì), _ǯÆü¿ô¹ç·× is truncate(_ǯÆü¿ô¹ç·×¤Î°ì), _·î_1_1 is _·î_1 - 1, findsum(_·îÆü¿ô,( for(0,_·î,_·î_1_1), ·îÆü¿ô(_ǯ_1,_·î,_·îÆü¿ô)), _·îÆü¿ô¹ç·×¤Î°ì), _·îÆü¿ô¹ç·×_1 is truncate(_·îÆü¿ô¹ç·×¤Î°ì), _·î_2_1 is _·î_2 - 1, findsum(_·îÆü¿ô,( for(0,_·î,_·î_2_1), ·îÆü¿ô(_ǯ_2,_·î,_·îÆü¿ô)), _·îÆü¿ô¹ç·×¤ÎÆó), _·îÆü¿ô¹ç·×_2 is truncate(_·îÆü¿ô¹ç·×¤ÎÆó), _»þ´Öº¹Ê¬Ã±°Ì is (1440 * _ǯÆü¿ô¤Î¹ç·× + 1440 * _·îÆü¿ô¹ç·×_2 + 1440 * _Æü_2 + 60 * _»þ_2 + _ʬ_2) - (1440 * _·îÆü¿ô¹ç·×_1 + 1440 * _Æü_1 + 60 * _»þ_1 + _ʬ_1),!. ǯÆü¿ô(_ǯ,366) :- ¤¦¤ë¤¦Ç¯(_ǯ),!. ǯÆü¿ô(_ǯ,365). ·îÆü¿ô(_ǯ,2,29) :- ¤¦¤ë¤¦Ç¯(_ǯ),!. ·îÆü¿ô(_ǯ,2,29) :- \+(¤¦¤ë¤¦Ç¯(_ǯ)),!. ·îÆü¿ô(_ǯ,_·î,31) :- append(_,[_·î|_],[1,3,5,7,8,10,12]),!. ·îÆü¿ô(_ǯ,_·î,30) :- append(_,[_·î|_],[4,6,9,11]),!. ·îÆü¿ô(_,0,0). ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 400,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 100,!, fail . ¤¦¤ë¤¦Ç¯(_ǯ) :- 0 is _ǯ mod 4,!. ¤¦¤ë¤¦Ç¯(_ǯ) :- \+(0 is _ǯ mod 4), fail. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1268979408/332 # # ¡ü´Ä¶­ # vb.net # # ¡ü¤·¤¿¤¤¤³¤È # 3ʸ»ú°Ê¾å¤Î·«¤êÊÖ¤·É½¸½¤òÃê½Ð # # ¡ü¥µ¥ó¥×¥ë # Îãʸ1¡Ë»à¤Ë¤¿¤¤»à¤Ë¤¿¤¤»à¤Ë¤¿¤¤»à¤Ë¤¿¤¤»à¤Ë¤¿¤¤ # ·ë²Ì1¡Ë»à¤Ë¤¿¤¤ # # ¡ü¤·¤¿¤¤¤³¤È # 2²Õ½ê°Ê¾å½Ð¸½¤¹¤ë3ʸ»ú°Ê¾å¤Îʸ»úÎó # # Îãʸ2¡Ë¶ÚÆù¥Ð¥¹¥¿¡¼¤È°¤½¤Íå¥Ð¥¹¥¿¡¼ # ·ë²Ì2¡Ë¥Ð¥¹¥¿¡¼ # # # ¤Ã¤Æ¤Î¤òÀµµ¬É½¸½¤Ç¤ä¤ë¤Î¤Ï̵Íý¤Ç¤·¤ç¤¦¤«¡¦¡¦¡¦ # '½ÅÊ£¤·¤Ê¤¤3ʸ»ú°Ê¾å¤Î·«¤êÊÖ¤·É½¸½¤òÃê½Ð'(_ʸ»úÎó,_½ÅÊ£¤·¤Ê¤¤3ʸ»ú°Ê¾å¤Î·«¤êÊÖ¤·É½¸½¤Ê¤é¤Ó) :- findsetof(_3ʸ»ú°Ê¾å¤Î·«¤êÊÖ¤·É½¸½,( '3ʸ»ú°Ê¾å¤Î·«¤êÊÖ¤·É½¸½¤òÃê½Ð'(_ʸ»úÎó,_3ʸ»ú°Ê¾å¤Î·«¤êÊÖ¤·É½¸½), _½ÅÊ£¤·¤Ê¤¤3ʸ»ú°Ê¾å¤Î·«¤êÊÖ¤·É½¸½¤Ê¤é¤Ó). '3ʸ»ú°Ê¾å¤Î·«¤êÊÖ¤·É½¸½¤òÃê½Ð'(_ʸ»úÎó,_3ʸ»ú°Ê¾å¤Î·«¤êÊÖ¤·É½¸½) :- sub_atom(_ʸ»úÎó,_³«»ÏÅÀ,_Ťµ,_»Ä¤êŤµ,[_3ʸ»ú°Ê¾å¤Î·«¤êÊÖ¤·É½¸½|R]), _Ťµ >= 3, _³«»ÏÅÀ2 is _³«»ÏÅÀ + _Ťµ, sub_atom(_ʸ»úÎó,_³«»ÏÅÀ2,_Ťµ,_»Ä¤êŤµ2,_3ʸ»ú°Ê¾å¤Î·«¤êÊÖ¤·É½¸½). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/753 # # ../test/read.cgi/db/1274791771/4¤Î¤è¤¦¤Ê¾õ¶·¤Ç¡¢ # ¤è¤¯¤¢¤ë¼ÁÌ䣱 # # ¡ÊÌä¡Ë # ID | DATE¡¡¡¡¡¡¡¡ | DATA # --+----------+----- # 1 | 2007-11-11 | aaa # 2 | 2007-11-11 | bbb # 1 | 2007-11-10 | ccc # 3 | 2007-11-12 | ddd # 3 | 2007-11-11 | eee # 4 | 2007-11-10 | fff # 1 | 2007-11-12 | ggg # # # ³ÆID¤´¤È¤Ë¥é¥ó¥À¥à¤Ç2·ïÃê½Ð¤·¤Æ¡¢¤½¤ÎDATE¤ò # ¸½ºß¤ÎÆü»þ¤Ë¹¹¿·¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤è¤¤¤Ç¤·¤ç¤¦¤«¡© # ³ÆID¤´¤È¤Ë¥é¥ó¥À¥à¤Ç2·ïÃê½Ð¤·¤Æ¡¢¤½¤ÎDATE¤ò¸½ºß¤ÎÆü»þ¤Ë¹¹¿·¤¹¤ë :- findsetof(_ID,'TableName'(_ID,_DATE,_DATA),_ID¤Ê¤é¤Ó), append(_,[_ID|R],_ID¤Ê¤é¤Ó), findall([_ID,_DATE,_DATA],( 'TableName'(_ID,_DATE,_DATA)), L1), length(L1,_Í×ÁÇ¿ô), ¥é¥ó¥À¥à¤Ë2·ïÃê½Ð¤·¤Æ(_Í×ÁÇ¿ô,L1,L2), ¸½ºß¤ÎÆü»þ¤Ë¹¹¿·¤¹¤ë(L2), R = []. ¥é¥ó¥À¥à¤Ë2·ïÃê½Ð¤·¤Æ(0,[],[]) :- !. ¥é¥ó¥À¥à¤Ë2·ïÃê½Ð¤·¤Æ(1,LL,LL) :- !. ¥é¥ó¥À¥à¤Ë2·ïÃê½Ð¤·¤Æ(_Í×ÁÇ¿ô,L1,[_1,_2]) :- Nth1 is (random mod _Í×ÁÇ¿ô) + 1, list_nth(Nth1,L1,_1), repeat, Nth2 is (random mod _Í×ÁÇ¿ô) + 1, \+(Nth1 = Nth2), list_nth(Nth2,L1,_2),!. ¸½ºß¤ÎÆü»þ¤Ë¹¹¿·¤¹¤ë([[_ID,_DATE,_DATA]|R1]) :- ¸½ºß¤ÎÆü»þ(_¸½ºß¤ÎÆü»þ), findall([_ID,_DATE2,_DATA2], retract('TableName'(_ID,_DATE2,_DATA2)), L1), ¸½ºß¤ÎÆü»þ¤Ë¹¹¿·¤¹¤ë(_¸½ºß¤ÎÆü»þ,[[_ID,_DATE,_DATA]|R1],L1). ¸½ºß¤ÎÆü»þ¤Ë¹¹¿·¤¹¤ë(_¸½ºß¤ÎÆü»þ,[],[]) :- !. ¸½ºß¤ÎÆü»þ¤Ë¹¹¿·¤¹¤ë(_¸½ºß¤ÎÆü»þ,[],L) :- append(_,[[_ID,_DATE,_DATA]|R],L), assertz('TableName'(_ID,_DATE,_DATA)), R = [],!. ¸½ºß¤ÎÆü»þ¤Ë¹¹¿·¤¹¤ë(_¸½ºß¤ÎÆü»þ,[[_ID,_DATE,_DATA]|R1],[[_ID,_DATE,_DATA]|R2]) :- assertz('TableName'(_ID,_¸½ºß¤ÎÆü»þ,_DATA)), ¸½ºß¤ÎÆü»þ¤Ë¹¹¿·¤¹¤ë(_¸½ºß¤ÎÆü»þ,R1,R2),!. ¸½ºß¤ÎÆü»þ¤Ë¹¹¿·¤¹¤ë(_¸½ºß¤ÎÆü»þ,[[_ID,_DATE,_DATA]|R1],[[_ID,_DATE2,_DATA1]|R2]) :- assertz('TableName'(_ID,_DATE2,_DATA2)), ¸½ºß¤ÎÆü»þ¤Ë¹¹¿·¤¹¤ë(_¸½ºß¤ÎÆü»þ,[[_ID,_DATE,_DATA]|R1],R2),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1252492296/471 # # ¡Ú¼ÁÌ䥯¥ó¥×¥ì¡Û # ¡¦DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó¡§ SQLite 3 # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿¡§Ä¹¤¤¤¿¤á²¼µ­¤Ëµ­ºÜ # ¡¦Íߤ·¤¤·ë²Ì¡§RSS¥ê¡¼¥À(brief)¤Î¥Ç¡¼¥¿(*.sqlite)¤«¤éÆÃÄê¤Îµ­»ö¥Ç¡¼¥¿¤òºï½ü¤·¤¿¤¤¤Ç¤¹¡£ # ¡¦ÀâÌÀ¡§Ä¹¤¤¤¿¤á²¼µ­¤Ëµ­ºÜ # # ¡ü¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ # ======================================================================================================================= # ¢£entries # ¡¡| id | feedID | primaryHash | secondaryHash | providerID ¡Ã entryURL ¡Ã date ¡Ã read ¡Ã updated ¡Ã starred ¡Ã deleted ¡Ã bookmarkID ¡Ã # ----------------------------------------------------------------------------------------------------------------------- # ¢£entries_text # ¡¡¡Ã title ¡Ã content ¡Ã authors ¡Ã tags ¡Ã # ----------------------------------------------------------------------------------------------------------------------- # ¢£entries_text_content # ¡¡| docid | c0title | c1content | c2authors | c3tags ¡Ã # ----------------------------------------------------------------------------------------------------------------------- # ¢£sqlite_sequence # ¡¡| name | seq | # ======================================================================================================================= # # £±¡¥¡Úentries¡Û¥Æ¡¼¥Ö¥ë¤Î¡Îdeleted¡Ï¥Õ¥£¡¼¥ë¥É¤¬¡Ö 2 ¡×¤Î¾ì¹ç¤Ë¡¢¤½¤Î¥ì¥³¡¼¥É¤òºï½ü¡£ # # £²¡¥Æ±»þ¤Ë¡¢¡Úentries_text_content¡Û¥Æ¡¼¥Ö¥ë¤Î¡Îdocid¡Ï¥Õ¥£¡¼¥ë¥É¤¬¡¢£±¡¥¤Çºï½ü¤·¤¿ # ¡¡¡¡¡Îid¡Ï¥Õ¥£¡¼¥ë¥É¤ÈƱ¤¸ÃͤΥ쥳¡¼¥É¤âºï½ü¡£ # # £³¡¥¹¹¤ËƱ»þ¤Ë¡¢¡Úentries_text¥Æ¡¼¥Ö¥ë¡Û¤«¤é¡¢£±¡¥¤Çºï½ü¤·¤¿¡Îid¥Õ¥£¡¼¥ë¥É¡Ï¤ÎÃÍ(¿ô»ú)¤È # ¡¡¡¡Æ±¤¸¥ì¥³¡¼¥ÉÈÖ¹æ¤Î¥ì¥³¡¼¥É¤òºï½ü¡£¡¡¢¨id¥Õ¥£¡¼¥ë¥É¤¬¤Ê¤¤°Ù # # £´¡¥¤½¤Î¸å¡¢²¼µ­¤Î¥Õ¥£¡¼¥ë¥É¤ÎÃͤò¡¢1Ž¥2Ž¥3¡Á¤È¥ê¥Ê¥ó¥Ð¥ê¥ó¥°¤·¤¿¤¤¡£ # ¡¡¡¡¡Úentries¡Û¥Æ¡¼¥Ö¥ë¤Î¡Îid¡Ï¥Õ¥£¡¼¥ë¥É # ¡¡¡¡¡Úentries_text_content¡Û¥Æ¡¼¥Ö¥ë¤Î¡Îdocid¡Ï¥Õ¥£¡¼¥ë¥É # # £µ¡¥¤½¤·¤Æ¡¢£±¡¥£²¡¥£³¡¥¤Î»°¤Ä¤Î¥Æ¡¼¥Ö¥ë¤Î¥ì¥³¡¼¥É¿ô¤¬¤É¤ì¤âƱ¤¸¿ô¤À¤±¤¢¤ë¤«³Îǧ¡£ # # £¶¡¥ºÇ¸å¤Ë¡¢¡Úsqlite_sequence¡Û¥Æ¡¼¥Ö¥ë¤Î¡Îseq¡Ï¥Õ¥£¡¼¥ë¥É¤Ë£µ¡¥¤Ç³Îǧ¤·¤¿¥ì¥³¡¼¥É¿ô¤ò # ¡¡¡¡ÀßÄꤷ¤¿¤¤¡£ # # ¤ª¼ê¿ô¤Ç¤¹¤¬¡¢°Ê¾å¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # '£±¡¥¡Úentries¡Û¥Æ¡¼¥Ö¥ë¤Î¡Îdeleted¡Ï¥Õ¥£¡¼¥ë¥É¤¬¡Ö 2 ¡×¤Î¾ì¹ç¤Ë¡¢¤½¤Î¥ì¥³¡¼¥É¤òºï½ü' :- findsetof(_id,( entries(_id,_feedID,_primaryHash,_secondaryHash,_providerID,_entryURL,_date,_read,_updated,_starred,_deleted,_bookmarkID)), _deleted = '2'), L1), retract_all(entries(_id,_feedID,_primaryHash,_secondaryHash,_providerID,_entryURL,_date,_read,_updated,_starred,'2',_bookmarkID)), findsetof(_docid,( member(_id,L1), entries_text_contents(_docid,_c0title,_c1content,_c2authors,_c3tags)), _docid = _id), L2), '£²¡¥Æ±»þ¤Ë¡¢¡Úentries_text_content¡Û¥Æ¡¼¥Ö¥ë¤Î¡Îdocid¡Ï¥Õ¥£¡¼¥ë¥É¤¬¡¢£±¡¥¤Çºï½ü¤·¤¿¡Îid¡Ï¥Õ¥£¡¼¥ë¥É¤ÈƱ¤¸ÃͤΥ쥳¡¼¥É¤âºï½ü¡£'(L2), '£³¡¥¹¹¤ËƱ»þ¤Ë¡¢¡Úentries_text¥Æ¡¼¥Ö¥ë¡Û¤«¤é¡¢£±¡¥¤Çºï½ü¤·¤¿¡Îid¥Õ¥£¡¼¥ë¥É¡Ï¤ÎÃÍ(¿ô»ú)¤ÈƱ¤¸¥ì¥³¡¼¥ÉÈÖ¹æ¤Î¥ì¥³¡¼¥É¤òºï½ü¡£'(L1),!. '£²¡¥Æ±»þ¤Ë¡¢¡Úentries_text_content¡Û¥Æ¡¼¥Ö¥ë¤Î¡Îdocid¡Ï¥Õ¥£¡¼¥ë¥É¤¬¡¢£±¡¥¤Çºï½ü¤·¤¿¡Îid¡Ï¥Õ¥£¡¼¥ë¥É¤ÈƱ¤¸ÃͤΥ쥳¡¼¥É¤âºï½ü¡£'(L2) :- member(_docid,L2), retract_all(entries_text_contents(_docid,_c0title,_c1content,_c2authors,_c3tags)),!. '£³¡¥¹¹¤ËƱ»þ¤Ë¡¢¡Úentries_text¥Æ¡¼¥Ö¥ë¡Û¤«¤é¡¢£±¡¥¤Çºï½ü¤·¤¿¡Îid¥Õ¥£¡¼¥ë¥É¡Ï¤ÎÃÍ(¿ô»ú)¤ÈƱ¤¸¥ì¥³¡¼¥ÉÈÖ¹æ¤Î¥ì¥³¡¼¥É¤òºï½ü¡£'(L1) :- append(_,[Nth|R],L1), Àá¤ÎÄêµÁ°ÌÃÖ»ØÄê¤Ë¤è¤ëÀá¤Îºï½ü(L2,Nth), R = [],!. '£³¡¥¹¹¤ËƱ»þ¤Ë¡¢¡Úentries_text¥Æ¡¼¥Ö¥ë¡Û¤«¤é¡¢£±¡¥¤Çºï½ü¤·¤¿¡Îid¥Õ¥£¡¼¥ë¥É¡Ï¤ÎÃÍ(¿ô»ú)¤ÈƱ¤¸¥ì¥³¡¼¥ÉÈÖ¹æ¤Î¥ì¥³¡¼¥É¤òºï½ü¡£'(_). Àá¤ÎÄêµÁ°ÌÃÖ»ØÄê¤Ë¤è¤ëÀá¤Îºï½ü(L2,Nth) :- findall((Head :- Body),( clause(entries_text(_title,_content,_authors,_tags),Head,Body)), L2), list_nth(Nth,L2,P), retract(P),!. '£´¡¥¤½¤Î¸å¡¢²¼µ­¤Î¥Õ¥£¡¼¥ë¥É¤ÎÃͤò¡¢1Ž¥2Ž¥3¡Á¤È¥ê¥Ê¥ó¥Ð¥ê¥ó¥°¤·¤¿¤¤¡£ ¡Úentries¡Û¥Æ¡¼¥Ö¥ë¤Î¡Îid¡Ï¥Õ¥£¡¼¥ë¥É¡¡¡Úentries_text_content¡Û¥Æ¡¼¥Ö¥ë¤Î¡Îdocid¡Ï¥Õ¥£¡¼¥ë¥É' :- findall(entries(_id,_feedID,_primaryHash,_secondaryHash,_providerID,_entryURL,_date,_read,_updated,_starred,_deleted,_bookmarkID),( retract(entries(_id,_feedID,_primaryHash,_secondaryHash,_providerID,_entryURL,_date,_read,_updated,_starred,_deleted,_bookmarkID))), L1), append(L01,[entries(_,_feedID,_primaryHash,_secondaryHash,_providerID,_entryURL,_date,_read,_updated,_starred,_deleted,_bookmarkID)|R1],L1), length([_|L0],Nth1), assertz(entries(Nth1,_feedID,_primaryHash,_secondaryHash,_providerID,_entryURL,_date,_read,_updated,_starred,_deleted,_bookmarkID)), R1 = [], findall(entries_text_contents(_,_c0title,_c1content,_c2authors,_c3tags),( retract(entries_text_contents(_docid,_c0title,_c1content,_c2authors,_c3tags))), L2), append(L02,[entries_text_contents(_,_c0title,_c1content,_c2authors,_c3tags)|R2],L2), length([_|L02],Nth2), assertz(entries_text_contents(Nth2,_c0title,_c1content,_c2authors,_c3tags)), R2 = [],!. '£µ¡¥¤½¤·¤Æ¡¢£±¡¥£²¡¥£³¡¥¤Î»°¤Ä¤Î¥Æ¡¼¥Ö¥ë¤Î¥ì¥³¡¼¥É¿ô¤¬¤É¤ì¤âƱ¤¸¿ô¤À¤±¤¢¤ë¤«³Îǧ¡£'(Count) :- count(entries(_id,_feedID,_primaryHash,_secondaryHash,_providerID,_entryURL,_date,_read,_updated,_starred,_deleted,_bookmarkID),Count), count(entries_text_contents(_docid,_c0title,_c1content,_c2authors,_c3tags),Count), count(entries_text(_title,_content,_authors,_tags),Count). '£¶¡¥ºÇ¸å¤Ë¡¢¡Úsqlite_sequence¡Û¥Æ¡¼¥Ö¥ë¤Î¡Îseq¡Ï¥Õ¥£¡¼¥ë¥É¤Ë£µ¡¥¤Ç³Îǧ¤·¤¿¥ì¥³¡¼¥É¿ô¤òÀßÄꤷ¤¿¤¤¡£'(Count) :- retract(sqlite_sequence(_name,_seq)), assertz(sqlite_sequence(_name,Count),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1291471791/670 # # [1]¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°±é½¬­µ # [2]ÌäÂêʸ # ÎÁÍý¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤òºîÀ®¤·¡¢Ê£¿ô¤Î¥Ç¡¼¥¿¤ÎÃæ¤«¤é¥«¥í¥ê¡¼¤¬ºÇÂç¤ÈºÇ¾®¤ÎÎÁÍý¤ÎÁ´¥Ç¡¼¥¿¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è # # [3] # [3.1]Windows # [3.2]Visual Studio 2010 # [3.3]C # [4]12/20 # [5]³ÆÎÁÍý¤Î¥Ç¡¼¥¿¤Ï¡ÖÈֹ桢̾Á°¡¢¥«¥í¥ê¡¼¡× # ¡¡ ÎÁÍý¤È¥«¥í¥ê¡¼¤ÎÃͤÏŬÅö¤Ç¤â²Ä¡Ê¥é¡¼¥á¥ó 10kcal¤È¤«¡Ë # # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹ # # ¿©ÉʤΥ«¥í¥ê¡¼('¥«¥Ã¥×ÌÍ(¥é¡¼¥á¥ó)',448). ¿©ÉʤΥ«¥í¥ê¡¼('¥¯¥í¥ï¥Ã¥µ¥ó',448). ¿©ÉʤΥ«¥í¥ê¡¼('¥¤¥ó¥¹¥¿¥ó¥È¥é¡¼¥á¥ó',445). ¿©ÉʤΥ«¥í¥ê¡¼('¥«¥Ã¥×¾Æ¤­¤½¤Ð',436). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ç¥Ë¥Ã¥·¥å¥Ñ¥ó',396). ¿©ÉʤΥ«¥í¥ê¡¼('¾Æ¤­¤Õ',385). ¿©ÉʤΥ«¥í¥ê¡¼('¥³¡¼¥ó¥Õ¥ì¡¼¥¯',381). ¿©ÉʤΥ«¥í¥ê¡¼('¥ª¡¼¥È¥ß¡¼¥ë',380). ¿©ÉʤΥ«¥í¥ê¡¼('¥¹¥Ñ¥²¥Æ¥£(´¥ÌÍ)',378). ¿©ÉʤΥ«¥í¥ê¡¼('¥Þ¥«¥í¥Ë(´¥ÌÍ)',378). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ó¡¼¥Õ¥ó(´¥ÌÍ)',377). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ñ¥óÊ´',373). ¿©ÉʤΥ«¥í¥ê¡¼('Çò¶ÌÊ´',369). ¿©ÉʤΥ«¥í¥ê¡¼('¾®ÇþÊ´(ÇöÎÏÊ´)',368). ¿©ÉʤΥ«¥í¥ê¡¼('¾®ÇþÊ´(ÃæÎÏÊ´)',368). ¿©ÉʤΥ«¥í¥ê¡¼('¾®ÇþÊ´(¶¯ÎÏÊ´)',366). ¿©ÉʤΥ«¥í¥ê¡¼('¥³¡¼¥ó¥Õ¥é¥ï¡¼',363). ¿©ÉʤΥ«¥í¥ê¡¼('¥³¡¼¥ó¥ß¡¼¥ë',363). ¿©ÉʤΥ«¥í¥ê¡¼('¾å¿·Ê´',362). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ï¤ÈÇþ',360). ¿©ÉʤΥ«¥í¥ê¡¼('¥¢¥Þ¥é¥ó¥µ¥¹',358). ¿©ÉʤΥ«¥í¥ê¡¼('¤½¤¦¤á¤ó(´¥)',356). ¿©ÉʤΥ«¥í¥ê¡¼('¥³¡¼¥ó¥°¥ê¥Ã¥Ä',355). ¿©ÉʤΥ«¥í¥ê¡¼('¤È¤¦¤â¤í¤³¤·(¸¼¹ò)',350). ¿©ÉʤΥ«¥í¥ê¡¼('¤Æ¤ó¤×¤éÊ´',349). ¿©ÉʤΥ«¥í¥ê¡¼('ÂçÇþ(²¡Çþ)',340). ¿©ÉʤΥ«¥í¥ê¡¼('¥í¡¼¥ë¥Ñ¥ó',316). ¿©ÉʤΥ«¥í¥ê¡¼('¥Á¥ç¥³¥³¥ë¥Í',308). ¿©ÉʤΥ«¥í¥ê¡¼('¥¯¥ê¡¼¥à¥Ñ¥ó',305). ¿©ÉʤΥ«¥í¥ê¡¼('¤·¤å¤¦¤Þ¤¤¤ÎÈé',295). ¿©ÉʤΥ«¥í¥ê¡¼('½Õ´¬¤ÎÈé',295). ¿©ÉʤΥ«¥í¥ê¡¼('ñ­»Ò¤ÎÈé',291). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤ó¤Þ¤ó',281). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤ó¤Ñ¤ó',280). ¿©ÉʤΥ«¥í¥ê¡¼('¥Õ¥é¥ó¥¹¥Ñ¥ó',279). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ö¤É¤¦¥Ñ¥ó',269). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ô¥¶¥¯¥é¥¹¥È',268). ¿©ÉʤΥ«¥í¥ê¡¼('¥³¥Ã¥Ú¥Ñ¥ó',265). ¿©ÉʤΥ«¥í¥ê¡¼('¿©¥Ñ¥ó',264). ¿©ÉʤΥ«¥í¥ê¡¼('¥é¥¤Çþ¥Ñ¥ó',264). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ê¥ó',262). ¿©ÉʤΥ«¥í¥ê¡¼('¥Û¥Ã¥È¥±¡¼¥­',261). ¿©ÉʤΥ«¥í¥ê¡¼('Æù¤Þ¤ó',251). ¿©ÉʤΥ«¥í¥ê¡¼('¤â¤Á',235). ¿©ÉʤΥ«¥í¥ê¡¼('¥¤¥ó¥°¥ê¥Ã¥·¥å¥Þ¥Õ¥£¥ó',228). ¿©ÉʤΥ«¥í¥ê¡¼('Ãæ²Ú¤á¤ó(¾ø¤·)',198). ¿©ÉʤΥ«¥í¥ê¡¼('¤ª¤³¤ï(ÀÖÈÓ)',189). ¿©ÉʤΥ«¥í¥ê¡¼('¤´¤Ï¤ó(ÀºÇòÊÆ)',168). ¿©ÉʤΥ«¥í¥ê¡¼('¤´¤Ï¤ó(¼·Ê¬¤Ä¤­ÊÆ)',168). ¿©ÉʤΥ«¥í¥ê¡¼('¤´¤Ï¤ó(¤Ï¤¤¤¬ÀºÊÆ)',167). ¿©ÉʤΥ«¥í¥ê¡¼('¤´¤Ï¤ó(¸¼ÊÆ)',165). ¿©ÉʤΥ«¥í¥ê¡¼('Ãæ²Ú¤á¤ó(¤æ¤Ç)',149). ¿©ÉʤΥ«¥í¥ê¡¼('¤½¤Ð(¤æ¤Ç)',132). ¿©ÉʤΥ«¥í¥ê¡¼('¤¦¤É¤ó(¤æ¤Ç)',105). ¿©ÉʤΥ«¥í¥ê¡¼('¥Õ¥é¥¤¥É¥Ý¥Æ¥È',388). ¿©ÉʤΥ«¥í¥ê¡¼('¥Þ¥Ã¥·¥å¥Ý¥Æ¥È(´¥)',357). ¿©ÉʤΥ«¥í¥ê¡¼('¥¿¥Ô¥ª¥«(´¥)',351). ¿©ÉʤΥ«¥í¥ê¡¼('¤µ¤Ä¤Þ¤¤¤â',163). ¿©ÉʤΥ«¥í¥ê¡¼('¤¯¤º¤­¤ê(¤æ¤Ç)',135). ¿©ÉʤΥ«¥í¥ê¡¼('¤ä¤Þ¤È¤¤¤â',123). ¿©ÉʤΥ«¥í¥ê¡¼('¤¸¤ã¤¬¤¤¤â',73). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ê¤¬¤¤¤â',65). ¿©ÉʤΥ«¥í¥ê¡¼('¤µ¤È¤¤¤â',59). ¿©ÉʤΥ«¥í¥ê¡¼('¤·¤é¤¿¤­',6). ¿©ÉʤΥ«¥í¥ê¡¼('¤³¤ó¤Ë¤ã¤¯',5). ¿©ÉʤΥ«¥í¥ê¡¼('Åà¤êƦÉå(´¥)',529). ¿©ÉʤΥ«¥í¥ê¡¼('¥Õ¥é¥¤¥Ó¡¼¥ó¥º',472). ¿©ÉʤΥ«¥í¥ê¡¼('¤­¤ÊÊ´',437). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ò¤è¤³Æ¦¥Õ¥é¥¤',419). ¿©ÉʤΥ«¥í¥ê¡¼('¤À¤¤¤º(´¥)',417). ¿©ÉʤΥ«¥í¥ê¡¼('ÌýÍȤ²',386). ¿©ÉʤΥ«¥í¥ê¡¼('¤¨¤ó¤É¤¦Æ¦(±öƦ)',364). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ï¤ë¤µ¤á(ÎÐÆ¦¡¦´¥)',345). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ï¤ë¤µ¤á(°ò¡¦´¥)',342). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤º¤­(´¥)',339). ¿©ÉʤΥ«¥í¥ê¡¼('¶â»³»û¤ß¤½',256). ¿©ÉʤΥ«¥í¥ê¡¼('¤ª¤¿¤Õ¤¯Æ¦',251). ¿©ÉʤΥ«¥í¥ê¡¼('Ʀ¤­¤ó¤È¤ó',249). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ä¤Ö¤·¤¢¤ó',244). ¿©ÉʤΥ«¥í¥ê¡¼('¤¦¤º¤éƦ',237). ¿©ÉʤΥ«¥í¥ê¡¼('¤æ¤Ð(À¸)',231). ¿©ÉʤΥ«¥í¥ê¡¼('¤¬¤ó¤â¤É¤­',228). ¿©ÉʤΥ«¥í¥ê¡¼('ǼƦ',200). ¿©ÉʤΥ«¥í¥ê¡¼('ǼƦ(¤Ò¤­¤ï¤ê)',194). ¿©ÉʤΥ«¥í¥ê¡¼('¤À¤¤¤º(¤æ¤Ç)',180). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ò¤è¤³Æ¦(¤æ¤Ç)',171). ¿©ÉʤΥ«¥í¥ê¡¼('¤³¤·¤¢¤ó',155). ¿©ÉʤΥ«¥í¥ê¡¼('¸üÍȤ²/À¸ÍȤ²',150). ¿©ÉʤΥ«¥í¥ê¡¼('¤¨¤ó¤É¤¦Æ¦(¤æ¤Ç)',148). ¿©ÉʤΥ«¥í¥ê¡¼('¤¤¤ó¤²¤óƦ(¤æ¤Ç)',143). ¿©ÉʤΥ«¥í¥ê¡¼('¹È²Ö¤¤¤ó¤²¤ó(¤æ¤Ç)',121). ¿©ÉʤΥ«¥í¥ê¡¼('¤ª¤«¤é',89). ¿©ÉʤΥ«¥í¥ê¡¼('ƦÉå(¾Æ¤­)',88). ¿©ÉʤΥ«¥í¥ê¡¼('ƦÉå(ÌÚÌÊ)',72). ¿©ÉʤΥ«¥í¥ê¡¼('ƦÉå(¸¨¤´¤·)',56). ¿©ÉʤΥ«¥í¥ê¡¼('ƦÆý',46). ¿©ÉʤΥ«¥í¥ê¡¼('¥Þ¥«¥À¥ß¥¢¥Ê¥Ã¥Ä',720). ¿©ÉʤΥ«¥í¥ê¡¼('¾¾¤Î¼Â',690). ¿©ÉʤΥ«¥í¥ê¡¼('¤¯¤ë¤ß',674). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ô¥¹¥¿¥Á¥ª',615). ¿©ÉʤΥ«¥í¥ê¡¼('¥¢¡¼¥â¥ó¥É',606). ¿©ÉʤΥ«¥í¥ê¡¼('¤´¤Þ',599). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ð¥¿¡¼¥Ô¡¼¥Ê¥Ã¥Ä',592). ¿©ÉʤΥ«¥í¥ê¡¼('¤é¤Ã¤«¤»¤¤',585). ¿©ÉʤΥ«¥í¥ê¡¼('¥«¥·¥å¡¼¥Ê¥Ã¥Ä',576). ¿©ÉʤΥ«¥í¥ê¡¼('¤¯¤ê(´ÅϪ¼Ñ)',238). ¿©ÉʤΥ«¥í¥ê¡¼('¤¯¤ê(Ãæ¹ñ¤°¤ê)',225). ¿©ÉʤΥ«¥í¥ê¡¼('¤¯¤ê(ÆüËܤ°¤ê)',167). ¿©ÉʤΥ«¥í¥ê¡¼('¤®¤ó¤Ê¤ó',166). ¿©ÉʤΥ«¥í¥ê¡¼('´³¤·¤·¤¤¤¿¤±¡Ê´¥¡Ë',182). ¿©ÉʤΥ«¥í¥ê¡¼('¤­¤¯¤é¤²(´¥)',167). ¿©ÉʤΥ«¥í¥ê¡¼('¥¨¥ê¥ó¥®',24). ¿©ÉʤΥ«¥í¥ê¡¼('¤Þ¤Ä¤¿¤±',23). ¿©ÉʤΥ«¥í¥ê¡¼('¤¨¤Î¤­¤¿¤±',22). ¿©ÉʤΥ«¥í¥ê¡¼('¤·¤¤¤¿¤±',18). ¿©ÉʤΥ«¥í¥ê¡¼('¤·¤á¤¸',18). ¿©ÉʤΥ«¥í¥ê¡¼('¤Þ¤¤¤¿¤±',16). ¿©ÉʤΥ«¥í¥ê¡¼('¥Þ¥Ã¥·¥å¥ë¡¼¥à',16). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ê¤á¤³',14). ¿©ÉʤΥ«¥í¥ê¡¼('¥Þ¥Ã¥·¥å¥ë¡¼¥à(´Ì)',14). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ê¤á¤³(´Ì)',9). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤ó¤³¤¦¤Î¤­¤â',445). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤¿¤ß¤¤¤ï¤·',372). ¿©ÉʤΥ«¥í¥ê¡¼('¤¤¤ï¤·(ÌýÄÒ)',359). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤Ä¤ª¤Ö¤·',356). ¿©ÉʤΥ«¥í¥ê¡¼('¤Þ¤°¤í(»é¿È)',344). ¿©ÉʤΥ«¥í¥ê¡¼('¤Õ¤«¤Ò¤ì',342). ¿©ÉʤΥ«¥í¥ê¡¼('¤·¤á¤µ¤Ð',339). ¿©ÉʤΥ«¥í¥ê¡¼('¤¤¤ï¤·(¤ß¤ê¤ó´³)',332). ¿©ÉʤΥ«¥í¥ê¡¼('¼Ñ´³¤·',332). ¿©ÉʤΥ«¥í¥ê¡¼('¤µ¤ó¤Þ',310). ¿©ÉʤΥ«¥í¥ê¡¼('¤¦¤Ê¤®(¤«¤Ð¾Æ)',293). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤é(¤Ç¤ó¤Ö)',278). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ä¥Ê´Ì(ÌýÄÒ)',267). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤Á¤¦¤ª',266). ¿©ÉʤΥ«¥í¥ê¡¼('¤µ¤ó¤Þ(³«¤­)',261). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ö¤ê',257). ¿©ÉʤΥ«¥í¥ê¡¼('¤á¤¶¤·',257). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ï¤Þ¤Á(À¸)',256). ¿©ÉʤΥ«¥í¥ê¡¼('¿È·ç¤­¤Ë¤·¤ó',246). ¿©ÉʤΥ«¥í¥ê¡¼('¤¤¤ï¤·(¾Æ¤­)',244). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤¤(¾Æ)',226). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤¸(´³Êª)',220). ¿©ÉʤΥ«¥í¥ê¡¼('¤®¤ó¤À¤é',220). ¿©ÉʤΥ«¥í¥ê¡¼('¤¤¤ï¤·(À¸)',217). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ë¤·¤ó',216). ¿©ÉʤΥ«¥í¥ê¡¼('¤µ¤Ð',202). ¿©ÉʤΥ«¥í¥ê¡¼('±ö¤µ¤±',199). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤Ê¤´',194). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤¤(À¸)',194). ¿©ÉʤΥ«¥í¥ê¡¼('¤¤¤ï¤·(´Ý´³)',193). ¿©ÉʤΥ«¥í¥ê¡¼('¤µ¤Ð(¿å¼Ñ´Ì)',190). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤æ(¾Æ)',177). ¿©ÉʤΥ«¥í¥ê¡¼('¤µ¤ï¤é',177). ¿©ÉʤΥ«¥í¥ê¡¼('¤·¤·¤ã¤â',177). ¿©ÉʤΥ«¥í¥ê¡¼('¤à¤Ä',173). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤¸(¾Æ)',164). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤ì¤¤(»Ò»ý¤Á)',162). ¿©ÉʤΥ«¥í¥ê¡¼('¥¹¥â¡¼¥¯¥µ¡¼¥â¥ó',161). ¿©ÉʤΥ«¥í¥ê¡¼('¤­¤ó¤á¤À¤¤',160). ¿©ÉʤΥ«¥í¥ê¡¼('¤µ¤±(À¸)',154). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤Þ¤¹(¾Æ)',145). ¿©ÉʤΥ«¥í¥ê¡¼('¤Û¤Ã¤±(³«¤­)',142). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤¸¤­',141). ¿©ÉʤΥ«¥í¥ê¡¼('¤¤¤µ¤­',127). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ë¤¸¤Þ¤¹',127). ¿©ÉʤΥ«¥í¥ê¡¼('¤¤¤«¤Ê¤´',125). ¿©ÉʤΥ«¥í¥ê¡¼('¤Þ¤°¤í(ÀÖ¿È)',125). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ò¤é¤á',124). ¿©ÉʤΥ«¥í¥ê¡¼('¤¹¤º¤­',123). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤¸(À¸)',121). ¿©ÉʤΥ«¥í¥ê¡¼('¤¦¤Ê¤®(¤­¤â)',118). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤ì¤¤(´³¤·)',117). ¿©ÉʤΥ«¥í¥ê¡¼('¤Û¤Ã¤±(À¸)',115). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤Ä¤ª',114). ¿©ÉʤΥ«¥í¥ê¡¼('¤·¤é¤¹´³¤·',113). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ï¤¿¤Ï¤¿',113). ¿©ÉʤΥ«¥í¥ê¡¼('¤á¤Ð¤ë',109). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤ì¤¤',95). ¿©ÉʤΥ«¥í¥ê¡¼('¤µ¤è¤ê',95). ¿©ÉʤΥ«¥í¥ê¡¼('¤­¤¹',85). ¿©ÉʤΥ«¥í¥ê¡¼('¤Õ¤°',85). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤ï¤Ï¤®',80). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤é(À¸)',79). ¿©ÉʤΥ«¥í¥ê¡¼('¤·¤é¤¦¤ª',77). ¿©ÉʤΥ«¥í¥ê¡¼('¤ï¤«¤µ¤®',77). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ä¥Ê´Ì(¿å¼Ñ)',71). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤é(±ö)',65). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤ó¤³¤¦',58). ¿©ÉʤΥ«¥í¥ê¡¼('¤¹¤ë¤á',334). ¿©ÉʤΥ«¥í¥ê¡¼('¤ï¤«¤µ¤®¤ÎÄѼÑ',317). ¿©ÉʤΥ«¥í¥ê¡¼('¤¹¤¸¤³',282). ¿©ÉʤΥ«¥í¥ê¡¼('¤¤¤«¤Ê¤´¤ÎÄѼÑ',282). ¿©ÉʤΥ«¥í¥ê¡¼('¤¤¤¯¤é',272). ¿©ÉʤΥ«¥í¥ê¡¼('¤¨¤Ó¤ÎÄѼÑ',244). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤Ä¤ªÀá¤ÎÄѼÑ',237). ¿©ÉʤΥ«¥í¥ê¡¼('´³¤·¤¨¤Ó',232). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤µ¤ê¤ÎÄѼÑ',225). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ï¤Þ¤°¤ê¤ÎÄѼÑ',219). ¿©ÉʤΥ«¥í¥ê¡¼('㤦¤Ë',183). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤é¤³',170). ¿©ÉʤΥ«¥í¥ê¡¼('µûÆù¥½¡¼¥»¡¼¥¸',161). ¿©ÉʤΥ«¥í¥ê¡¼('¤µ¤Ä¤ÞÍȤ²',139). ¿©ÉʤΥ«¥í¥ê¡¼('¤á¤ó¤¿¤¤¤³',126). ¿©ÉʤΥ«¥í¥ê¡¼('¤Á¤¯¤ï',121). ¿©ÉʤΥ«¥í¥ê¡¼('¤¦¤Ë',120). ¿©ÉʤΥ«¥í¥ê¡¼('¤¤¤«(¾Æ)',117). ¿©ÉʤΥ«¥í¥ê¡¼('¤¤¤«¤Î±ö¿É',117). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ä¤ß¤ì',113). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤¤¤é¤¬¤¤',100). ¿©ÉʤΥ«¥í¥ê¡¼('¤·¤ã¤³',98). ¿©ÉʤΥ«¥í¥ê¡¼('¼Ö¤¨¤Ó',97). ¿©ÉʤΥ«¥í¥ê¡¼('¤Û¤¿¤Æ(³­Ãì)',97). ¿©ÉʤΥ«¥í¥ê¡¼('ÂçÀµ¤¨¤Ó',95). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤Þ¤Ü¤³',95). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ï¤ó¤Ú¤ó',94). ¿©ÉʤΥ«¥í¥ê¡¼('°ËÀª¤¨¤Ó',92). ¿©ÉʤΥ«¥í¥ê¡¼('ºù¤¨¤Ó',91). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤Ë¤«¤Þ¤Ü¤³',90). ¿©ÉʤΥ«¥í¥ê¡¼('¿ô¤Î»Ò',89). ¿©ÉʤΥ«¥í¥ê¡¼('¤µ¤¶¤¨',89). ¿©ÉʤΥ«¥í¥ê¡¼('¤¤¤«(À¸)',88). ¿©ÉʤΥ«¥í¥ê¡¼('´Å¤¨¤Ó',87). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ð¤¤¤¬¤¤',87). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ä¤Ö¤¬¤¤',86). ¿©ÉʤΥ«¥í¥ê¡¼('¤È¤ê¤¬¤¤',86). ¿©ÉʤΥ«¥í¥ê¡¼('¤Û¤¿¤ë¤¤¤«',84). ¿©ÉʤΥ«¥í¥ê¡¼('¼Ç¤¨¤Ó',83). ¿©ÉʤΥ«¥í¥ê¡¼('ÌÓ¤¬¤Ë',83). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ö¥é¥Ã¥¯¥¿¥¤¥¬¡¼',82). ¿©ÉʤΥ«¥í¥ê¡¼('¤ß¤ë³­',82). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤é¤Ð¤¬¤Ë',80). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ê¤ë¤È',80). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤³',76). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤ï¤Ó',73). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤Ë´Ì',73). ¿©ÉʤΥ«¥í¥ê¡¼('¤Û¤Ã¤­³­',73). ¿©ÉʤΥ«¥í¥ê¡¼('¤Û¤¿¤Æ(¤Ò¤âÉÕ)',72). ¿©ÉʤΥ«¥í¥ê¡¼('¤º¤ï¤¤¤¬¤Ë',69). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤ß¤Î±ö¿É',65). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤ª¤ä¤®',61). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤­',60). ¿©ÉʤΥ«¥í¥ê¡¼('¤·¤¸¤ß',51). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ï¤Þ¤°¤ê',38). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤µ¤ê',30). ¿©ÉʤΥ«¥í¥ê¡¼('¤Û¤ä',30). ¿©ÉʤΥ«¥í¥ê¡¼('¤¯¤é¤²',22). ¿©ÉʤΥ«¥í¥ê¡¼('µí¤Ð¤éÆù(ϵí)',517). ¿©ÉʤΥ«¥í¥ê¡¼('¥Õ¥©¥¢¥°¥é',510). ¿©ÉʤΥ«¥í¥ê¡¼('µí¥µ¡¼¥í¥¤¥ó(ϵí)',498). ¿©ÉʤΥ«¥í¥ê¡¼('¥µ¥é¥ß',497). ¿©ÉʤΥ«¥í¥ê¡¼('µí¥ê¥Ö¥í¡¼¥¹(ϵí)',468). ¿©ÉʤΥ«¥í¥ê¡¼('µí¸ª¥í¡¼¥¹(ϵí)',411). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ù¡¼¥³¥ó',405). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤Þ¤´(Íñ²«)',387). ¿©ÉʤΥ«¥í¥ê¡¼('ÆÚ¤Ð¤éÆù',386). ¿©ÉʤΥ«¥í¥ê¡¼('¥ì¥Ð¡¼¥Ú¡¼¥¹¥È',378). ¿©ÉʤΥ«¥í¥ê¡¼('µí¤Ð¤éÆù(Í¢Æþ)',371). ¿©ÉʤΥ«¥í¥ê¡¼('µí¥é¥ó¥×(ϵí)',347). ¿©ÉʤΥ«¥í¥ê¡¼('¥¦¥¤¥ó¥Ê¡¼',321). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ó¡¼¥Õ¥¸¥ã¡¼¥­¡¼',315). ¿©ÉʤΥ«¥í¥ê¡¼('µí¥µ¡¼¥í¥¤¥ó(Í¢Æþ)',298). ¿©ÉʤΥ«¥í¥ê¡¼('¥Õ¥é¥ó¥¯¥Õ¥ë¥È',298). ¿©ÉʤΥ«¥í¥ê¡¼('µíÆù(¾®Ä²)',287). ¿©ÉʤΥ«¥í¥ê¡¼('µí¸ªÆù(ϵí)',286). ¿©ÉʤΥ«¥í¥ê¡¼('µí¤¿¤ó(Àå)',269). ¿©ÉʤΥ«¥í¥ê¡¼('µí¥ê¥Ö¥í¡¼¥¹(Í¢Æþ)',263). ¿©ÉʤΥ«¥í¥ê¡¼('ÆÚ¥í¡¼¥¹',263). ¿©ÉʤΥ«¥í¥ê¡¼('ÆÚ¸ª¥í¡¼¥¹',253). ¿©ÉʤΥ«¥í¥ê¡¼('À¸¥Ï¥à',247). ¿©ÉʤΥ«¥í¥ê¡¼('µí¤â¤âÆù(ϵí)',246). ¿©ÉʤΥ«¥í¥ê¡¼('µí¸ª¥í¡¼¥¹(Í¢Æþ)',240). ¿©ÉʤΥ«¥í¥ê¡¼('µí¥é¥ó¥×(Í¢Æþ)',234). ¿©ÉʤΥ«¥í¥ê¡¼('ÆÚ­',230). ¿©ÉʤΥ«¥í¥ê¡¼('µí¤Ò¤­Æù',224). ¿©ÉʤΥ«¥í¥ê¡¼('¥Þ¥È¥ó',224). ¿©ÉʤΥ«¥í¥ê¡¼('µí¤Ò¤ìÆù(ϵí)',223). ¿©ÉʤΥ«¥í¥ê¡¼('ÆÚ¤Ò¤­Æù',221). ¿©ÉʤΥ«¥í¥ê¡¼('ÆÚ¤¿¤ó(Àå)',221). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ô¡¼¥¿¥ó',214). ¿©ÉʤΥ«¥í¥ê¡¼('·Ü¼ê±©Æù',211). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ù¡¼¥³¥ó(¥í¡¼¥¹)',211). ¿©ÉʤΥ«¥í¥ê¡¼('·Ü¤Ï¤Ä(¿´Â¡)',207). ¿©ÉʤΥ«¥í¥ê¡¼('¥³¥ó¥Ó¡¼¥Õ´Ì',203). ¿©ÉʤΥ«¥í¥ê¡¼('·Ü¤â¤âÆù(ÈéÉÕ)',200). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ï¥à(¥í¡¼¥¹)',196). ¿©ÉʤΥ«¥í¥ê¡¼('¥í¡¼¥¹¥È¥Ó¡¼¥Õ',196). ¿©ÉʤΥ«¥í¥ê¡¼('·Ü¤à¤ÍÆù(ÈéÉÕ)',191). ¿©ÉʤΥ«¥í¥ê¡¼('¥·¥ç¥ë¥À¡¼¥Ù¡¼¥³¥ó',186). ¿©ÉʤΥ«¥í¥ê¡¼('ÆÚ¤â¤âÆù',183). ¿©ÉʤΥ«¥í¥ê¡¼('µí¤â¤âÆù(Í¢Æþ)',182). ¿©ÉʤΥ«¥í¥ê¡¼('¤¦¤º¤éÍñ(¿å¼Ñ´Ì)',182). ¿©ÉʤΥ«¥í¥ê¡¼('µí¸ªÆù(Í¢Æþ)',180). ¿©ÉʤΥ«¥í¥ê¡¼('¤¦¤º¤éÍñ(À¸)',179). ¿©ÉʤΥ«¥í¥ê¡¼('¾ÆÆÚ',172). ¿©ÉʤΥ«¥í¥ê¡¼('·Ü¤Ò¤­Æù',166). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ý¡¼¥Á¥É¥¨¥Ã¥°',164). ¿©ÉʤΥ«¥í¥ê¡¼('µíÂçIJ',162). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤Þ¤´(À¸)',151). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤Þ¤´(¤æ¤Ç)',151). ¿©ÉʤΥ«¥í¥ê¡¼('µí¤Ï¤Ä(¿´Â¡)',142). ¿©ÉʤΥ«¥í¥ê¡¼('µí¤Ò¤ìÆù(Í¢Æþ)',133). ¿©ÉʤΥ«¥í¥ê¡¼('µí¥ì¥Ð¡¼(´Î¡)',132). ¿©ÉʤΥ«¥í¥ê¡¼('ÆÚ¥ì¥Ð¡¼(´Î¡)',128). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤â',128). ¿©ÉʤΥ«¥í¥ê¡¼('»Òµí¤Ð¤éÆù',122). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ï¥à(¥Ü¥ó¥ì¥¹)',118). ¿©ÉʤΥ«¥í¥ê¡¼('·Ü¤â¤âÆù(Èé¤Ê¤·)',116). ¿©ÉʤΥ«¥í¥ê¡¼('ÆÚ¤Ò¤ìÆù',115). ¿©ÉʤΥ«¥í¥ê¡¼('·Ü¥ì¥Ð¡¼(´Î¡)',111). ¿©ÉʤΥ«¥í¥ê¡¼('·Ü¤à¤ÍÆù(Èé¤Ê¤·)',108). ¿©ÉʤΥ«¥í¥ê¡¼('·Ü¤µ¤µ¤ß',105). ¿©ÉʤΥ«¥í¥ê¡¼('·Üº½¤®¤â',94). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤Þ¤´Æ¦Éå',79). ¿©ÉʤΥ«¥í¥ê¡¼('µí¥ß¥Î(°ß)',62). ¿©ÉʤΥ«¥í¥ê¡¼('·ÜÆð¹ü',54). ¿©ÉʤΥ«¥í¥ê¡¼('¤¿¤Þ¤´(ÍñÇò)',50). ¿©ÉʤΥ«¥í¥ê¡¼('¾Æ¤­¤Î¤ê',188). ¿©ÉʤΥ«¥í¥ê¡¼('Ì£ÉÕ¤±¤Î¤ê',179). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤ª¤Î¤ê(´¥)',150). ¿©ÉʤΥ«¥í¥ê¡¼('¤Ò¤¸¤­(´¥)',139). ¿©ÉʤΥ«¥í¥ê¡¼('¤³¤ó¤Ö(´¥)',138). ¿©ÉʤΥ«¥í¥ê¡¼('¥«¥Ã¥È¤ï¤«¤á(´¥)',138). ¿©ÉʤΥ«¥í¥ê¡¼('¤¢¤ª¤µ(´¥)',130). ¿©ÉʤΥ«¥í¥ê¡¼('¤È¤í¤í¤³¤ó¤Ö',117). ¿©ÉʤΥ«¥í¥ê¡¼('¤ï¤«¤á(ÁÇ´³¤·)',117). ¿©ÉʤΥ«¥í¥ê¡¼('±öº«ÉÛ',110). ¿©ÉʤΥ«¥í¥ê¡¼('¤³¤ó¤Ö¤Ä¤¯¤À¼Ñ',84). ¿©ÉʤΥ«¥í¥ê¡¼('¤Î¤ê¤Î¤Ä¤¯¤À¼Ñ',77). ¿©ÉʤΥ«¥í¥ê¡¼('¤á¤«¤Ö¤ï¤«¤á',11). ¿©ÉʤΥ«¥í¥ê¡¼('±ö¢¤ï¤«¤á(±öÈ´)',11). ¿©ÉʤΥ«¥í¥ê¡¼('¤â¤º¤¯',4). ¿©ÉʤΥ«¥í¥ê¡¼('¤«¤ó¤Æ¤ó',3). ¿©ÉʤΥ«¥í¥ê¡¼('¤È¤³¤í¤Æ¤ó',2). ¿©ÉʤΥ«¥í¥ê¡¼('¥³¡¼¥Ò¡¼¥ß¥ë¥¯(Ê´/¿¢ÊªÀ­)',568). ¿©ÉʤΥ«¥í¥ê¡¼('¥³¡¼¥Ò¡¼¥ß¥ë¥¯(Ê´/Æý»éËÃ)',518). ¿©ÉʤΥ«¥í¥ê¡¼('¥Ñ¥ë¥á¥¶¥ó¥Á¡¼¥º',475). ¿©ÉʤΥ«¥í¥ê¡¼('À¸¥¯¥ê¡¼¥à(Æý»éËÃ)',433). ¿©ÉʤΥ«¥í¥ê¡¼('¥Û¥¤¥Ã¥×¥¯¥ê¡¼¥à(Æý»éËÃ)',422). ¿©ÉʤΥ«¥í¥ê¡¼('¥Û¥¤¥Ã¥×¥¯¥ê¡¼¥à(¿¢ÊªÀ­)',402). ¿©ÉʤΥ«¥í¥ê¡¼('À¸¥¯¥ê¡¼¥à(¿¢ÊªÀ­)',392). ¿©ÉʤΥ«¥í¥ê¡¼('æ»éÊ´Æý(Ê´)',359). ¿©ÉʤΥ«¥í¥ê¡¼('¥Á¡¼¥º(¥¯¥ê¡¼¥à)',346). ¿©ÉʤΥ«¥í¥ê¡¼('¥×¥í¥»¥¹¥Á¡¼¥º',339). ¿©ÉʤΥ«¥í¥ê¡¼('²ÃÅüÎýÆý',331). ¿©ÉʤΥ«¥í¥ê¡¼('¥«¥Þ¥ó¥Ù¡¼¥ë¥Á¡¼¥º',310). ¿©ÉʤΥ«¥í¥ê¡¼('¥³¡¼¥Ò¡¼¥ß¥ë¥¯(±Õ/¿¢ÊªÀ­)',248). ¿©ÉʤΥ«¥í¥ê¡¼('¥¢¥¤¥¹¥¯¥ê¡¼¥à(¥é¥¯¥È¥¢¥¤¥¹¡¦ÉáÄÌ»éËÃ)',224). ¿©ÉʤΥ«¥í¥ê¡¼('Æý»À¶Ý°ûÎÁ(»¦¶ÝÆýÀ½ÉÊ)',217). ¿©ÉʤΥ«¥í¥ê¡¼('¥¢¥¤¥¹¥¯¥ê¡¼¥à(¹â»éËÃ)',212). ¿©ÉʤΥ«¥í¥ê¡¼('¥³¡¼¥Ò¡¼¥ß¥ë¥¯(±Õ/Æý»éËÃ)',211). ¿©ÉʤΥ«¥í¥ê¡¼('¥¢¥¤¥¹¥¯¥ê¡¼¥à(ÉáÄÌ»éËÃ)',180). ¿©ÉʤΥ«¥í¥ê¡¼('¥¢¥¤¥¹¥¯¥ê¡¼¥à(¥¢¥¤¥¹¥ß¥ë¥¯)',167). ¿©ÉʤΥ«¥í¥ê¡¼('¥¢¥¤¥¹¥¯¥ê¡¼¥à(¥½¥Õ¥È¥¯¥ê¡¼¥à)',146). ¿©ÉʤΥ«¥í¥ê¡¼('¥·¥ã¡¼¥Ù¥Ã¥È',127). ¿©ÉʤΥ«¥í¥ê¡¼('¥¢¥¤¥¹¥¯¥ê¡¼¥à(¥é¥¯¥È¥¢¥¤¥¹¡¦Äã»éËÃ)',108). ¿©ÉʤΥ«¥í¥ê¡¼('¥«¥Ã¥Æ¡¼¥¸¥Á¡¼¥º',105). ¿©ÉʤΥ«¥í¥ê¡¼('µíÆý(ÆÃÇ»)',73). ¿©ÉʤΥ«¥í¥ê¡¼('Æý»À¶Ý°ûÎÁ(ÆýÀ½ÉÊ)',71). ¿©ÉʤΥ«¥í¥ê¡¼('µíÆý(ÉáÄÌ)',67). ¿©ÉʤΥ«¥í¥ê¡¼('¥è¡¼¥°¥ë¥È(æ»é/²ÃÅü)',67). ¿©ÉʤΥ«¥í¥ê¡¼('¥è¡¼¥°¥ë¥È(°ûÎÁ)',65). ¿©ÉʤΥ«¥í¥ê¡¼('¥è¡¼¥°¥ë¥È(Á´»é/̵Åü)',62). ¿©ÉʤΥ«¥í¥ê¡¼('¥³¡¼¥Ò¡¼µíÆý',56). ¿©ÉʤΥ«¥í¥ê¡¼('µíÆý(Äã»éËÃÆý)',46). ¿©ÉʤΥ«¥í¥ê¡¼('¥Õ¥ë¡¼¥ÄµíÆý',46). ¿©ÉʤΥ«¥í¥ê¡¼('µíÆý(æ»éÆý)',33). ÎÁÍýÃæ¤Î°ä¼º¥«¥í¥ê¡¼ÈæÎ¨(¥«¥ì¡¼,5) :- !. ÎÁÍýÃæ¤Î°ä¼º¥«¥í¥ê¡¼ÈæÎ¨(_ÎÁÍý̾,10) :- sub_atom(_ÎÁÍý̾,_,3,_,¥¹¡¼¥×),!. ÎÁÍýÃæ¤Î°ä¼º¥«¥í¥ê¡¼ÈæÎ¨(_,0). ¥ì¥·¥Ô(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,Èé¤òÇí¤¤¤À¥«¥¨¥ë¤Î­,6,900 g). ¥ì¥·¥Ô(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,¿É¸ý¤ÎÇò¥Ö¥É¥¦¼ò,6,200 cc). ¥ì¥·¥Ô(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,¾®ÇþÊ´,6,3 g). ¥ì¥·¥Ô(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,±ö,6,¾¯¡¹). ¥ì¥·¥Ô(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,¥Ñ¥»¥ê¤Î¤ß¤¸¤óÀÚ¤ê,6,2-3 Ëç). ¥ì¥·¥Ô(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,¥ì¥â¥ó,6,1 ¸Ä). ¥ì¥·¥Ô(¤¹¤º¤­¤ÎÇò¥Ö¥É¥¦¼òÆþ¤ê¾ø¤·¾Æ¤­,'³¤¤¹¤º¤­(1.1kg)',6,1 Èø). ¥ì¥·¥Ô(¤¹¤º¤­¤ÎÇò¥Ö¥É¥¦¼òÆþ¤ê¾ø¤·¾Æ¤­,±ö,6,¾¯ÎÌ). ¥ì¥·¥Ô(¤¹¤º¤­¤ÎÇò¥Ö¥É¥¦¼òÆþ¤ê¾ø¤·¾Æ¤­,¿É¸ýÇò¥Ö¥É¥¦¼ò,6,400 cc). ¥ì¥·¥Ô(¤¹¤º¤­¤ÎÇò¥Ö¥É¥¦¼òÆþ¤ê¾ø¤·¾Æ¤­,¥Ð¥¿¡¼,6,25 g). ºî¤êÊý(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,1,'¥Þ¥ê¥Í¤Î¤¿¤á¤Ë¥Ö¥É¥¦¼ò¤ò»È¤Ã¤Æ¥«¥¨¥ë¤Î­¤ò¿»¤¹'). ºî¤êÊý(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,2,'¥Ð¥¿¡¼¤ò¿¼Äì¤Î¥Õ¥é¥¤¥Ñ¥ó¤ËÍϤ«¤¹'). ºî¤êÊý(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,3,'¥Þ¥ê¥Í¤«¤é¥«¥¨¥ë¤Î­¤ò¼è¤ê½Ð¤·¤¿¤ª¤¯'). ºî¤êÊý(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,4,'¥Õ¥é¥¤¥Ñ¥ó¤Ë¥Ö¥É¥¦¼ò¤ò¤½¤½¤®¡¢¥Ð¥¿¡¼¤È¤è¤¯º®¤¼¹ç¤ï¤»¡¢Â­¤ò²Ã¤¨¤ë'). ºî¤êÊý(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,5,'¥Ö¥É¥¦¼ò¤¬È¾Î̼ѤĤޤë¤Þ¤Ç¡¢Ãæ²Ð¤Ç¼Ñ¤ë'). ºî¤êÊý(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,6,'¾®ÇþÊ´¡¢±ö¾¯¡¹¡¢¥Ñ¥»¥ê¡¢¿å 30cc¤òº®¤¼¹ç¤ï¤»¤ë'). ºî¤êÊý(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,7,'¥Õ¥é¥¤¥Ñ¥ó¤ËÆþ¤ì¤Æº®¤¼¹ç¤ï¤»¤ë'). ºî¤êÊý(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,8,'Ãæ²Ð¤Ç¤µ¤é¤Ë15ʬ²Ð¤òÄ̤·Â³¤±¤ë'). ºî¤êÊý(¥«¥¨¥ë¤Î¥Ð¥¿¡¼¤È¥Ö¥É¥¦¼ò¤Î¼Ñ¹þ¤ß,9,'¶¡¤¹¤ëÁ°¤Ë¡¢¥«¥¨¥ë¤Î­¤Ë¥ì¥â¥ó½Á¤ò¤Õ¤ê¤«¤±¤Æ¡¢¶¡¤¹¤ë'). ºî¤êÊý(¤¹¤º¤­¤ÎÇò¥Ö¥É¥¦¼òÆþ¤ê¾ø¤·¾Æ¤­,1,'Èé¤Ë½ý¤ò¤Ä¤±¤Ê¤¤¤è¤¦¤Ë²¼¤´¤·¤é¤¨¤¹¤ë¡£µû¤Ï¤­¤¶¤ßÌܤò¤Ä¤±¤ÆÆâ¦¤Ë±ö¤ò¤¹¤ë¡£'). ºî¤êÊý(¤¹¤º¤­¤ÎÇò¥Ö¥É¥¦¼òÆþ¤ê¾ø¤·¾Æ¤­,2,'Æé¤Ë¥Ö¥É¥¦¼ò¡¢¥Ð¥¿¡¼¡¢±ö¾¯Î̤òÆþ¤ì¤Æµû¤òÆþ¤ì¡¢³¸¤ò¤·¤ÆÃæ²Ð¤Î¥ª¡¼¥×¥ó¤ÇÌó20ʬ´Öµû¤¬¤ä¤ï¤é¤«¤¯¤Ê¤ë¤Þ¤Ç¾ø¤·¾Æ¤­¤Ë¤¹¤ë¡£'). ºî¤êÊý(¤¹¤º¤­¤ÎÇò¥Ö¥É¥¦¼òÆþ¤ê¾ø¤·¾Æ¤­,3,'µû¤ò»®¤ËÀ¹¤êµû¤ÎÇØÃæ¤Ë2~3¤Ä¤ÎÀÚ¤êÌܤò¤Ä¤±¡¢¾å¤«¤éßɤ·¤¿¼Ñ½Á¤ò¤«¤±¤Æ¤¹¤°¶¡¤¹¤ë¡£'). ºàÎÁ¤Î»Ñ(À¸Õª,N,¸Ä,_¿ôÎ̤Υ°¥é¥àñ°Ì) :- _¿ôÎ̤Υ°¥é¥àñ°Ì is N * 30. ºàÎÁ¤Î»Ñ('¤¿¤Þ¤Í¤®(Ãæ)',N,¸Ä,_¿ôÎ̤Υ°¥é¥àñ°Ì) :- _¿ôÎ̤Υ°¥é¥àñ°Ì is N * 250. ºàÎÁ¤Î»Ñ(_,A,_,A,_). ÎÁÍý¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤òºîÀ®¤·¡¢Ê£¿ô¤Î¥Ç¡¼¥¿¤ÎÃæ¤«¤é¥«¥í¥ê¡¼¤¬ºÇÂç¤ÈºÇ¾®¤ÎÎÁÍý¤ÎÁ´¥Ç¡¼¥¿¤ò½ÐÎϤ¹¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è :- findsetof(_ÎÁÍý̾,¥ì¥·¥Ô(_ÎÁÍý̾,_,_),_ÎÁÍý̾¤Ê¤é¤Ó), append(_,[_ÎÁÍý̾|_],_ÎÁÍý̾¤Ê¤é¤Ó), findall([_¥«¥í¥ê¡¼,_ÎÁÍý̾], ÎÁÍý¤Î¥«¥í¥ê¡¼(_ÎÁÍý̾,_¥«¥í¥ê¡¼), _¥«¥í¥ê¡¼¡¦ÎÁÍý̾¤Ê¤é¤Ó), max(_¥«¥í¥ê¡¼¡¦ÎÁÍý̾¤Ê¤é¤Ó,[_¥«¥í¥ê¡¼¤¬ºÇÂç¤ÎÎÁÍý¤Î¥«¥í¥ê¡¼,_¥«¥í¥ê¡¼¤¬ºÇÂç¤ÎÎÁÍý̾]), min(_¥«¥í¥ê¡¼¡¦ÎÁÍý̾¤Ê¤é¤Ó,[_¥«¥í¥ê¡¼¤¬ºÇ¾®¤ÎÎÁÍý¤Î¥«¥í¥ê¡¼,_¥«¥í¥ê¡¼¤¬ºÇ¾®¤ÎÎÁÍý̾]), ÎÁÍý¤ÎÁ´¥Ç¡¼¥¿¤ò½ÐÎϤ¹¤ë(_¥«¥í¥ê¡¼¤¬ºÇÂç¤ÎÎÁÍý̾,_¥«¥í¥ê¡¼¤¬ºÇÂç¤ÎÎÁÍý¤Î¥«¥í¥ê¡¼), ÎÁÍý¤ÎÁ´¥Ç¡¼¥¿¤ò½ÐÎϤ¹¤ë(_¥«¥í¥ê¡¼¤¬ºÇ¾®¤ÎÎÁÍý̾,_¥«¥í¥ê¡¼¤¬ºÇ¾®¤ÎÎÁÍý¤Î¥«¥í¥ê¡¼),!. ÎÁÍý¤Î¥«¥í¥ê¡¼(_ÎÁÍý̾,_¥«¥í¥ê¡¼) :- findsum(_¥«¥í¥ê¡¼,( ¥ì¥·¥Ô(_ÎÁÍý̾,_ºàÎÁ,_¿ôÎÌ,_), ºàÎÁ¤Î»Ñ(_ºàÎÁ,_¿ôÎÌ,_,_¿ôÎÌ¥°¥é¥àñ°Ì), ¿©ÉʤΥ«¥í¥ê¡¼(_ºàÎÁ,_100g¤¢¤¿¤ê¤Î¥«¥í¥ê¡¼), _¥«¥í¥ê¡¼ is _100g¤¢¤¿¤ê¤Î¥«¥í¥ê¡¼ * _¿ôÎÌ¥°¥é¥àñ°Ì / 100), _¥«¥í¥ê¡¼¹ç·×), ÎÁÍýÃæ¤Î°ä¼º¥«¥í¥ê¡¼ÈæÎ¨(_ÎÁÍý̾,_°ä¼º¥«¥í¥ê¡¼ÈæÎ¨), _¥«¥í¥ê¡¼ is _¥«¥í¥ê¡¼¹ç·× * (100-_°ä¼º¥«¥í¥ê¡¼ÈæÎ¨) / 100. ÎÁÍý¤ÎÁ´¥Ç¡¼¥¿¤ò½ÐÎϤ¹¤ë(_ÎÁÍý̾,_¥«¥í¥ê¡¼) :- findall([_ºàÎÁ,_¿ôÎÌ¥°¥é¥àñ°Ì],¥ì¥·¥Ô(ºàÎÁ,_ÎÁÍý̾,_ºàÎÁ,_¿ôÎÌ,_),_ºàÎÁ¤Ê¤é¤Ó), findall(_ºî¤êÊý,ºî¤êÊý(_ÎÁÍý̾,_,_ºî¤êÊý),_ºî¤êÊý¤Ê¤é¤Ó), write_formatted('ÎÁÍý̾ %t\n¥«¥í¥ê¡¼ÎÌ %t\n',[_ÎÁÍý̾,¥«¥í¥ê¡¼]), ºàÎÁ¤Îɽ¼¨(_ºàÎÁ¡¦¿ôÎ̤ʤé¤Ó), ºî¤êÊý¤Îɽ¼¨(_ºî¤êÊý¤Ê¤é¤Ó),!. ºàÎÁ¤Îɽ¼¨(_ºàÎÁ¡¦¿ôÎ̤ʤé¤Ó) :- write('ºàÎÁ,¿ôÎÌ\n'), append(_,[[_ºàÎÁ,_¿ôÎÌ¥°¥é¥àñ°Ì]|R],_ºàÎÁ¡¦¿ôÎ̤ʤé¤Ó), write_formatted('%t,%t\n',_ºàÎÁ,_¿ôÎÌ¥°¥é¥àñ°Ì]), R = [],!. ºî¤êÊý¤Îɽ¼¨(_ºî¤êÊý¤Ê¤é¤Ó) :- write('\nºî¤êÊý\n\n'), append(L0,[_ºî¤êÊý|R],_ºî¤êÊý¤Ê¤é¤Ó), length([_|L0],_¼ê½çÈÖ¹æ), write_formatted('%t ... %t\n',[_¼ê½çÈÖ¹æ,_ºî¤êÊý]), R = [],!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/730 # # ¡¦DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó # ¡¡MySQL 5.1 # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ # ¡¡µ­Ï¿ID(Ä̤·ÈÖ¹æ)¡¢¥æ¡¼¥¶ID¡¢Æü»þ¡¢¶â³Û¡¢¹ØÆþÉÊÌÜID # ¡¦Íߤ·¤¤·ë²Ì # ¡¡¹ØÆþÉÊÌÜID¡¢Æü»þ¡ÊºÇ¿·¤Î1·ï¡Ë¡¢¶â³Û¡Ê¡·¡Ë¡¡¡¡//¤¿¤À¤·¥æ¡¼¥¶ID¡áA # # ¡¦ÀâÌÀ # ¡¡¥æ¡¼¥¶ID¡áA¤Î¡¢¹ØÆþÉÊÌÜID¤´¤È¤Ë¡¢ºÇ¿·¤ÎÆü»þ¤È¶â³Û¤òɽ¼¨¤µ¤»¤¿¤¤¤Ç¤¹¡£ # ¡¡¡Ê¹ØÆþÉÊÌÜID¤¬1¡Á10¤Þ¤Ç¤¢¤Ã¤¿¤é¡¢10¹Ô¤Î·ë²Ì¤¬Ê֤äƤ¯¤ë¤è¤¦¤Ê¡Ë # ¡¡¤É¤³¤ËÉûÌä¹ç¤»¤ò»È¤Ã¤Æ¤¤¤¤¤«Ê¬¤«¤é¤ºµÍ¤Þ¤ê¤Þ¤·¤¿¡£¤É¤Ê¤¿¤«¤ª´ê¤¤¤·¤Þ¤¹¡£ # # '¥æ¡¼¥¶ID¡áA¤Î¡¢¹ØÆþÉÊÌÜID¤´¤È¤Ë¡¢ºÇ¿·¤ÎÆü»þ¤È¶â³Û¤òɽ¼¨¤µ¤»¤¿¤¤¤Ç¤¹¡£' :- '¥æ¡¼¥¶ID¤ò»ØÄꤷ¤Æ¡¢¹ØÆþÉÊÌÜID¤´¤È¤Ë¡¢ºÇ¿·¤ÎÆü»þ¤È¶â³Û¤òɽ¼¨'('A'). '¥æ¡¼¥¶ID¤ò»ØÄꤷ¤Æ¡¢¹ØÆþÉÊÌÜID¤´¤È¤Ë¡¢ºÇ¿·¤ÎÆü»þ¤È¶â³Û¤òɽ¼¨'(_¥æ¡¼¥¶ID) :- findsetof(_¹ØÆþÉÊÌÜID, ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿(_µ­Ï¿ID,_¥æ¡¼¥¶ID,_Æü»þ,_¶â³Û,_¹ØÆþÉÊÌÜID), L1), append(_,[_¹ØÆþÉÊÌÜID|R],L1), findmax([_Æü»þ,_¤½¤ÎÆü¤Î¹ç·×¶â³Û], findsum(_¶â³Û,( ¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿(_µ­Ï¿ID,_¥æ¡¼¥¶ID,_Æü»þ,_¶â³Û,_¹ØÆþÉÊÌÜID)), _¤½¤ÎÆü¤Î¹ç·×¶â³Û), [_Æü»þ,_¤½¤ÎÆü¤Î¹ç·×¶â³Û]), write_formatted('%t,%t,%t\n',[_¥æ¡¼¥¶ID,_Æü»þ,_¤½¤ÎÆü¤Î¶â³Û]), R = []. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/642 # # +---+------+----+ # | id|parent|name| # +---+------+----+ # | 1 | NULL |taro| # | 2 |¡¡¡¡1 |jiro| # | 3 |¡¡¡¡1 |sabu| # | 4 |¡¡¡¡2 |siro| # | 5 | 3 |hana| # +---+------+----+ # # ¾åµ­¤Î¤è¤¦¤Ê¥æ¡¼¥¶¡¼ID(id)¤È¤½¤Î¿Æ¾ðÊó(parent)¤Î¥Æ¡¼¥Ö¥ë¤Ç¡¢ # »ØÄꤷ¤¿ID¤Î»Ò¤È¹¤Î°ìÍ÷¤ò¼èÆÀ¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤Ç¤¹¤«¡© # 1¤Î¾ì¹ç¡¢jiro¡¢sabu¡¢siro¤ò¼èÆÀ¤·¤¿¤¤¤Ç¤¹¡£ # »Ò¤È¹¤ÎÁí¿ô¤À¤±¤Ç¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£ # # ¿Æ»Ò(1,[],taro). ¿Æ»Ò(2,1,jiro). ¿Æ»Ò(3,1,sabu). ¿Æ»Ò(4,2,siro). ¿Æ»Ò(5,3,hana). »ØÄꤷ¤¿ID¤Î»Ò¤È¹¤Î¼èÆÀ(_»ØÄꤷ¤¿id,_»Ò¤È¹¤Ê¤é¤Ó) :- findsetof(_id,¿Æ»Ò(_id,_,_),L), append(_,[_»ØÄꤷ¤¿id|_],L), ¹¤Ê¤é¤Ó¤Î¼èÆÀ(_»ØÄꤷ¤¿id,_¹¤Ê¤é¤Ó), »Ò¤Ê¤é¤Ó¤Î¼èÆÀ(_»ØÄꤷ¤¿id,_»Ò¤Ê¤é¤Ó), append(_»Ò¤Ê¤é¤Ó,_¹¤Ê¤é¤Ó,_»Ò¤È¹¤Ê¤é¤Ó). ¹¤Ê¤é¤Ó¤Î¼èÆÀ(_id2,_¹¤Ê¤é¤Ó) :- findall(_name,( ¿Æ»Ò(_id1,_id2,_), ¿Æ»Ò(_id,_id1,_name)), _¹¤Ê¤é¤Ó),!. »Ò¤Ê¤é¤Ó¤Î¼èÆÀ(_id2,_»Ò¤Ê¤é¤Ó) :- findall(_name,¿Æ»Ò(_id,_id2,_name),_»Ò¤Ê¤é¤Ó),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1289913298/83 # # ¥Ý¡¼¥«¡¼¥²¡¼¥à¤òºî¤ë¥×¥í¥°¥é¥à¤Î²ÝÂê¤ò¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£ # [1] ¥×¥í¥°¥é¥à¤Þ¤È¤á # [2] ²ÝÂ꣱¤Î¥¹¥È¥ì¡¼¥È¡¢¥Õ¥é¥Ã¥·¥å¡¢¥Õ¥ë¥Ï¥¦¥¹¤ò¥Ò¥ó¥È¤ò»È¤Ã¤ÆÈ½Äꤹ¤ë´Ø¿ô¤òºî¤ë¡£ # # /* ¥Ò¥ó¥È: ¤³¤Î´Ø¿ô¤ò»È¤¦¤È¡¢ ȽÄ꤬´Êñ¤«¤â */ # void distrib(struct card h[], int dist[]){ # int i; # for(i = 0; i < 14; i++){ # dist[i] = 0;} # for(i = 0; i < 5; i++){ # dist[h[i].pips]++;}} # # int is_straight(struct card h[]){ # /* ²ÝÂê1 */ # return 0;} # # int is_flush(struct card h[]){ # /* ²ÝÂê1 */} # # int is_fullhouse(struct card h[]){ # /* ²ÝÂê1 */ # return 0;} # # card h[] ¤Ï¼ê»¥¤Î¥«¡¼¥É # h[].pips ¤Ï¼ê»¥¤Î¥«¡¼¥É¤ÎÈÖ¹æ # h[].suit ¤Ï¼ê»¥¤Î¥«¡¼¥É¤Î¥Þ¡¼¥¯¤Î¤³¤È¤Ç¤¹ ¥Ý¡¼¥«¡¼¤ÎÌò(_¼ê»¥¤Ê¤é¤Ó,¥Õ¥é¥Ã¥·¥å) :- all(_¼ê»¥¤Ê¤é¤Ó,[_,_¶¦ÄÌ¥Þ¡¼¥¯]), \+(¥Ý¡¼¥«¡¼¤ÎÌò(_¼ê»¥¤Ê¤é¤Ó,¥¹¥È¥ì¡¼¥È)),!. ¥Ý¡¼¥«¡¼¤ÎÌò(_¼ê»¥¤Ê¤é¤Ó,¥¹¥È¥ì¡¼¥È) :- sort(_¼ê»¥¤Ê¤é¤Ó,L), L = [Min|R], Max is Min + 4, findall(N,for(Min,N,Max),L), \+all(_¼ê»¥¤Ê¤é¤Ó,[_,_¶¦ÄÌ¥Þ¡¼¥¯])),!. ¥Ý¡¼¥«¡¼¤ÎÌò(_¼ê»¥¤Ê¤é¤Ó,¥Õ¥ë¥Ï¥¦¥¹) :- findsetof(_ÈÖ¹æ,append(_,[[_ÈÖ¹æ,_]|_],_¼ê»¥¤Ê¤é¤Ó),[_ÈÖ¹æ1,_ÈÖ¹æ2]), count(append(_,[[_ÈÖ¹æ1,_]|_],_¼ê»¥¤Ê¤é¤Ó),Count1), Count1 >= 2, count(append(_,[[_ÈÖ¹æ2,_]|_],_¼ê»¥¤Ê¤é¤Ó),Count2), Count2 >= 2,!. ¥Ý¡¼¥«¡¼¤ÎÌò(_¼ê»¥¤Ê¤é¤Ó,¥Õ¥ë¥Ï¥¦¥¹) :- sort(_¼ê»¥¤Ê¤é¤Ó,L), ¥Õ¥ë¥Ï¥¦¥¹(L). ¥Õ¥ë¥Ï¥¦¥¹([[_A,_],[_A,_],[_B,_],[_B,_],[_B,_]]) :- \+(A = B),!. ¥Õ¥ë¥Ï¥¦¥¹([[_A,_],[_A,_],[_A,_],[_B,_],[_B,_]]) :- \+(A = B),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/627 # # mysql 5.0 (windows 7)¤Ç¤¹ # ²¼µ­¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤Ç # amount¤Î¹ç·×¤ÎºÇ¤â¿¤¤id¤ò¼èÆÀ¤¹¤ësqlʸ¤¬¤ï¤«¤ê¤Þ¤»¤ó¡Ä # # select id, sum(amount) as "total" from orders # group by id order by total desc limit 1; # # ¤È¤¹¤ì¤Ð°ì±þ¼èÆÀ¤Ç¤­¤¿¤Î¤Ç¤¹¤¬¡¢Ê̤ÎÊýË¡¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤« # ½éÊâŪ¤Ê¼ÁÌä¤Ç¤¹¤ß¤Þ¤»¤ó¡Ä # # +------+------+--------+ # | id | name | amount | # +------+------+--------+ # | 1 | C1 | 3 | # | 1 | C2 | 10 | # | 2 | C2 | 5 | # | 2 | C3 | 10 | # | 3 | C3 | 2 | # +------+------+--------+ # 'amount¤Î¹ç·×¤ÎºÇ¤â¿¤¤id¤ò¼èÆÀ¤¹¤ë'(_ºÇ¤âaumout¹ç·×¤¬Â¿¤¤id) :- find_sum_max([_id,_ÃÍ],orders(_id,_,_ÃÍ),[_ºÇ¤âamount¹ç·×¤¬Â¿¤¤id,_ºÇÂç¹ç·×ÃÍ]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % _¹ç·×ÃÍ ¤ÏǤ°Õ¤ÎÊÑ¿ô¤È¤·¤Æ¡¢ÍøÍѼԤ¬ÀßÄꤹ¤ë find_sum_max([_¸°,_ÃÍ],P,_¹ç·×ÃÍ,_¹ç·×Ãͤξò·ï,[_¸°,_ºÇÂç¹ç·×ÃÍ]) :- findall([_¸°,_ÃÍ],( ñ°ì(_¸°,P)), findsum(_ÃÍ,P,_¹ç·×ÃÍ)), L), findmax(_¹ç·×ÃÍ,( append(_,[[_¸°,_¹ç·×ÃÍ]|_],L), _¹ç·×Ãͤξò·ï), _ºÇÂç¹ç·×ÃÍ), append(_,[[_¸°,_ºÇÂç¹ç·×ÃÍ]|_],L). find_sum_min([_¸°,_ÃÍ],P,_¹ç·×ÃÍ,_¹ç·×Ãͤξò·ï,[_¸°,_ºÇ¾®¹ç·×ÃÍ]) :- findall([_¸°,_ÃÍ],( ñ°ì(_¸°,P)), findsum(_ÃÍ,P,_¹ç·×ÃÍ)), L), findmin(_¹ç·×ÃÍ,( append(_,[[_¸°,_¹ç·×ÃÍ]|_],L), _¹ç·×Ãͤξò·ï), _ºÇ¾®¹ç·×ÃÍ), append(_,[[_¸°,_ºÇ¾®¹ç·×ÃÍ]|_],L). find_sum_max([_¸°,_ÃÍ],P,[_¸°,_ºÇÂç¹ç·×ÃÍ]) :- findall([_¸°,_ÃÍ],( ñ°ì(_¸°,P)), findsum(_ÃÍ,P,_¹ç·×ÃÍ)), L), findmax(_¹ç·×ÃÍ,append(_,[[_¸°,_¹ç·×ÃÍ]|_],L),_ºÇÂç¹ç·×ÃÍ), append(_,[[_¸°,_ºÇÂç¹ç·×ÃÍ]|_],L). find_sum_min([_¸°,_ÃÍ],P,[_¸°,_ºÇ¾®¹ç·×ÃÍ]) :- findall([_¸°,_ÃÍ],( ñ°ì(_¸°,P)), findsum(_ÃÍ,P,_¹ç·×ÃÍ)), L), findmin(_¹ç·×ÃÍ,append(_,[[_¸°,_¹ç·×ÃÍ]|_],L),_ºÇ¾®¹ç·×ÃÍ), append(_,[[_¸°,_ºÇ¾®¹ç·×ÃÍ]|_],L). ñ°ì(A,P) :- findsetof(A,P,L),!, append(_,[A|_],L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/607 # # MySQLServer5.1(WinXP)¤Ç¤¹¡£ # # ²¼µ­¤Î¤è¤¦¤Ê£³¼ïÎà¤Î¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¤Þ¤¹¡£ # ¤³¤ì¤ò½¸·×¤·¤Æ¡¢»ØÄꤷ¤¿¥æ¡¼¥¶¡¼¤Î»ØÄê·î¤Î¥¢¥¯¥»¥¹Æü»þ¤ÈÇä¾å¤²¶â³Û¤òɽ¤Ë¤·¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£ # # ¤³¤ó¤Ê´¶¤¸¤Ë¡£ # # +--+--------+----------+-------+-----+ # | id | username| date ¡¡ | access | sales | # +--+--------+----------+-------+-----+ # | 1 | admin | 2010-11-13 | ¡¡ 2 |¡¡5000 | # | 1 | admin | 2010-11-14 | ¡¡ 2 |¡¡5000 | # | 1 | admin | 2010-11-15 | ¡¡1 | 20000 | # +--+--------+----------+-------+-----+ # # # SELECT u.id AS id, u.username, DATE(a.created_at) AS date, COUNT(*) AS access, SUM(s.amount) AS sales # FROM sf_guard_user u INNER JOIN sales s ON u.username = s.user_id LEFT JOIN access_log a ON u.username = a.user_id # WHERE (u.username = 'admin' AND a.created_at > '2010-11-01 00:00:00' AND a.created_at < '2010-11-30 23:59:59') GROUP BY date ORDER BY a.created_at; # ¤È¤ä¤Ã¤Æ¤ß¤¿¤Î¤Ç¤¹¤¬¥À¥á¤Ç¤·¤¿¡¨¡¨ # # # ¢£¥æ¡¼¥¶¡¼¾ðÊ󥯡¼¥Ö¥ë # mysql> select id,username from user; # +--+---------+ # | id | username | # +--+---------+ # |¡¡1 | admin ¡¡¡¡| # +--+---------+ # # ¢£¥¢¥¯¥»¥¹¥í¥°¥Æ¡¼¥Ö¥ë # mysql> select * from access_log; # +--+-------+--------+------------------+ # | id | user_id | ip¡¡¡¡¡¡¡¡ | created_at¡¡ ¡¡¡¡¡¡¡¡| # +--+-------+--------+------------------+ # |¡¡1 | admin¡¡ | 127.0.0.1 | 2010-11-13 21:56:54 | # |¡¡2 | admin¡¡ | 127.0.0.1 | 2010-11-13 21:56:54 | # |¡¡3 | admin¡¡ | 127.0.0.1 | 2010-11-14 21:56:54 | # |¡¡4 | admin¡¡ | 127.0.0.1 | 2010-11-14 21:56:54 | # |¡¡5 | admin¡¡ | 127.0.0.1 | 2010-11-15 21:56:54 | # +--+-------+--------+------------------+ # # ¢£Çä¾å¤²¶â³Û¥Æ¡¼¥Ö¥ë # mysql> select * from sales; # +--+-------+------+------------------+ # | id | user_id | amount| created_at¡¡ ¡¡¡¡¡¡¡¡| # +--+-------+------+------------------+ # |¡¡1 | admin¡¡ |¡¡ 5000 | 2010-11-13 21:56:54 | # |¡¡2 | admin¡¡ |¡¡ 5000 | 2010-11-14 21:56:54 | # |¡¡3 | admin¡¡ |¡¡ 5000 | 2010-11-15 21:56:54 | # |¡¡4 | admin¡¡ |¡¡ 5000 | 2010-11-15 21:56:54 | # +--+-------+------+------------------+ # # '²¼µ­¤Î¤è¤¦¤Ê£³¼ïÎà¤Î¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤ò½¸·×¤·¤Æ¡¢»ØÄꤷ¤¿¥æ¡¼¥¶¡¼¤Î»ØÄê·î¤Î¥¢¥¯¥»¥¹Æü»þ¤ÈÇä¾å¤²¶â³Û¤òɽ¤Ë¤·¤¿¤¤¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£'(_username) :- user(_id,_username), ¥¢¥¯¥»¥¹¥í¥°¥Æ¡¼¥Ö¥ë_date(_username,_¥¢¥¯¥»¥¹¥í¥°_date¤Ê¤é¤Ó), Çä¾å¤²¶â³Û¥Æ¡¼¥Ö¥ë_date(_username,_Çä¾å¶â³Û¥Æ¡¼¥Ö¥ë_date¤Ê¤é¤Ó), ¶¦ÄÌÉôʬ(_¥¢¥¯¥»¥¹¥í¥°_date¤Ê¤é¤Ó,_Çä¾å¶â³Û¥Æ¡¼¥Ö¥ë_date¤Ê¤é¤Ó,_date_¶¦ÄÌÉôʬ), write('+--+-------+--------+------------------+ \n'), write('| id | user_id | amount| created_at¡¡ ¡¡¡¡¡¡¡¡| \n'), write('+--+-------+------+------------------+ \n), append(L0,[_date|R],_date_¶¦ÄÌÉôʬ), length(L0,Len0), _id is Len0 + 1, count(( access_log(_,_user_id,_ip,_create_at), sub_atom(_create_at,0,10,_,_create_at)), _access), findsum(_amount,( sales(_,_user_id,_amount,_create_at), sub_atom(_create_at,0,10,_,_create_at)), _sales), write_formatted('| %t | %t | %t | %t | %t |\n',[_id,_username,_date,_access,_sales]), R = [], write('+--+-------+------+------------------+\n'). ¥¢¥¯¥»¥¹¥í¥°¥Æ¡¼¥Ö¥ë_date(_user_id,_date¤Ê¤é¤Ó) :- findsetof(_date,( access_log(_,_user_id,_,_created_at), sub_atom(_create_at,0,10,_,_date)), _date¤Ê¤é¤Ó). Çä¾å¤²¶â³Û¥Æ¡¼¥Ö¥ë_date(_user_id,_date¤Ê¤é¤Ó) :- findsetof(_date,( sales(_,_user_id,_amount,_created_at), sub_atom(_create_at,0,10,_,_date)), _date¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/587 # # ²¼¤Î¤è¤¦¤Ê¥«¥é¥à¤¬¤¢¤ë¤Î¤Ç¤¹¤¬¡¢value1¡Á3¤Ë1²ó¤Ç¤â½Ð¤Æ¤¯¤ëÃͤò # ½ÅÊ£¤Ê¤¯¼èÆÀ¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢¤¦¤Þ¤¯SQL¤Ç½ñ¤±¤ë¤â¤Î¤Ç¤·¤ç¤¦¤«¡£ # key, value1, valu2, value3(value1¡Á3¤ÏǤ°Õ¤Îʸ»úÎó) # # ¤¿¤È¤¨¤Ð¡¢3¸Ä¤Î¥ì¥³¡¼¥É # 1, AAA, BBB, CCC # 2, DDD, AAA, CCC # 3, EEE, FFF, AAA # ¤¬¤¢¤Ã¤¿¾ì¹ç¡¢AAA, BBB, CCC, DDD, EEE, FFF¤ò½ÐÎϤ·¤¿¤¤¤Ç¤¹¡£ # # % table(_key,_value1,_value2,_value3). table(1,'AAA','BBB','CCC'). table(2,'DDD','AAA','CCC'). table(3,'EEE','FFF','AAA'). 'table¤Îvalue1¡Á3¤Ë1²ó¤Ç¤â½Ð¤Æ¤¯¤ëÃͤò½ÅÊ£¤Ê¤¯¼èÆÀ¤·¤¿¤¤' :- 'table¤Îvalue1¡Á3¤Ë1²ó¤Ç¤â½Ð¤Æ¤¯¤ëÃͤò½ÅÊ£¤Ê¤¯¼èÆÀ¤·¤¿¤¤'(L), append(_,[X|R],L), write_formatted('%t\n',[X]), R = []. 'table¤Îvalue1¡Á3¤Ë1²ó¤Ç¤â½Ð¤Æ¤¯¤ëÃͤò½ÅÊ£¤Ê¤¯¼èÆÀ¤·¤¿¤¤'(L) :- findsetof(_value,( table(_,_value1,_value2,_value3), append(_,[_value|_],[_value1,_value2,_value3])), L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1288531658/172 # # [1] ¼ø¶Èñ¸µ¡§ ¥¢¥ë¥´¥ê¥º¥à¤È¥Ç¡¼¥¿¹½Â¤ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # ¡¡typedef struct{char name[256]; unsigned char sex; unsigned char age;} PERSONAL_DATA # ¾åµ­¤Î¹½Â¤ÂÎPERSONAL_DATA·¿¤ÎÇÛÎó(Í×ÁÇ¿ôn)¤Ë³ÊǼ¤µ¤ì¤¿ # n¿Í¤Î̾Á°¡¦À­ÊÌ¡¦Ç¯Îð¤Î¥Ç¡¼¥¿¤ÎÃæ¤«¤éƱ¤¸Ç¯Îð¤Î2¿ÍÁȤÎ̾Á°¤òÁ´¤ÆÉ½¼¨¤»¤è¡£ # % n¿Í¤¬È¿±Ç¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ 'n¿Í¤Î̾Á°¡¦À­ÊÌ¡¦Ç¯Îð¤Î¥Ç¡¼¥¿¤ÎÃæ¤«¤éƱ¤¸Ç¯Îð¤Î2¿ÍÁȤÎ̾Á°¤òÁ´¤ÆÉ½¼¨¤»¤è' :- findsetof(_ǯÎð,¸Ä¿Í¥Ç¡¼¥¿(_̾Á°,_À­ÊÌ,_ǯÎð),_ǯÎð¤Ê¤é¤Ó), append(_,[_ǯÎð|R],_ǯÎð¤Ê¤é¤Ó), findall(_»á̾,¸Ä¿Í¥Ç¡¼¥¿(_̾Á°,_À­ÊÌ,_ǯÎð),_»á̾¤Ê¤é¤Ó), Ʊ¤¸Ç¯Îð¤Î2¿ÍÁȤÎ̾Á°¤òɽ¼¨(_ǯÎð,_»á̾¤Ê¤é¤Ó), R = []. Ʊ¤¸Ç¯Îð¤Î2¿ÍÁȤÎ̾Á°¤òɽ¼¨(_,[]) :- !. Ʊ¤¸Ç¯Îð¤Î2¿ÍÁȤÎ̾Á°¤òɽ¼¨(_,[_]) :- !. Ʊ¤¸Ç¯Îð¤Î2¿ÍÁȤÎ̾Á°¤òɽ¼¨(_ǯÎð,_»á̾¤Ê¤é¤Ó) :- write_formatted('ǯÎð=%t',[_ǯÎð]), ÁȤ߹ç¤ï¤»(_»á̾¤Ê¤é¤Ó,2,L), write_formatted(' (%t,%t)',L), fail. Ʊ¤¸Ç¯Îð¤Î2¿ÍÁȤÎ̾Á°¤òɽ¼¨(_,_) :- write('\n'). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/531 # # ACCESS SQL¤Ç°Ê²¼¤Î¤è¤¦¤Ê½èÍý¤Ï¤Ç¤­¤ë¤Ç¤·¤ç¤¦¤«¡© # (VBA¤Îµ¡Ç½Åù¤ò´Þ¤á¤Ê¤¤SQL¤Î½èÍý·ë²Ì¤Î¤ß¤Ç) # # ¡Ú¥Æ¡¼¥Ö¥ë¡Û # T¤¯¤À¤â¤Î(̾Á°, ̾Á°) # T¥¢¥ó¥±¡¼¥È(̾Á°, ɾ²Á)¡¡¢«É¾²Á¤Ë¤Ï1¡Á5¤Î¿ôÃͤ¬Æþ¤ë # # ¡Ú·ë²Ì¡Û # ¤ß¤«¤ó, 1, 3, 5, 3, 4, ... (°Ê¹ß¥¢¥ó¥±¡¼¥È¤Î¿ô¤À¤±Â³¤¯¡Ë # ɾ²ÁÃͤÎÎóɽ¼¨ :- findsetof(_̾Á°,¤¯¤À¤â¤Î(_̾Á°),_̾Á°¤Ê¤é¤Ó), append(_,[_̾Á°|R],_̾Á°¤Ê¤é¤Ó), findall(_ɾ²Á,¥¢¥ó¥±¡¼¥È(_̾Á°,_ɾ²Á),_ɾ²Á¤Ê¤é¤Ó), concat_atom(_ɾ²Á¤Ê¤é¤Ó,', ',_ɾ²Áɽ¼¨Ê¸»úÎó), write_formatted('%t, %t\n',[_̾Á°,_ɾ²Áɽ¼¨Ê¸»úÎó]), R = []. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ɾ²ÁÃͤÎÎóɽ¼¨ :- ¤¯¤À¤â¤Î(_̾Á°), findall(_ɾ²Á,¥¢¥ó¥±¡¼¥È(_̾Á°,_ɾ²Á),_ɾ²Á¤Ê¤é¤Ó), concat_atom(_ɾ²Á¤Ê¤é¤Ó,', ',_ɾ²Áɽ¼¨Ê¸»úÎó), write_formatted('%t, %t\n',[_̾Á°,_ɾ²Áɽ¼¨Ê¸»úÎó]), fail. ɾ²ÁÃͤÎÎóɽ¼¨. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1272006124 # # <ÌäÂê> # Á´¼Ò°÷¤¬Çä¾å¤òµ­Ï¿¤·¤¿Æü¤òµá¤á¤è¡£ ¤³¤ì¤òProlog¥×¥í¥°¥é¥à¤È¤·¤ÆÉ½¸½¤·¤Ê¤µ¤¤¡£ Á´¼Ò°÷¤¬Çä¾å¤òµ­Ï¿¤·¤¿Æü¤òµá¤á¤è(_Æü) :- count(¼Ò°÷(_¼Ò°÷),_¼Ò°÷¿Í¿ô), findsetof(_Æü,Çä¾å(_¼Ò°÷,_Æü,_¥Ç¡¼¥¿),L1), append(_,[_Æü|R],L1), findsetof(_¼Ò°÷,¼Ò°÷(_¼Ò°÷,_Æü,_¥Ç¡¼¥¿),L2), length(L2,_¼Ò°÷¿Í¿ô). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% count(P,N) :- findsum(1,P,F), N is truncate(F). findsum(_ÁªÂò¹à,_¹à,_¹ç·×ÃÍ) :- findall(_ÁªÂò¹à,_¹à,_Ãͤʤé¤Ó), ²Ã»»(_Ãͤʤé¤Ó,_¹ç·×ÃÍ),!. findsetof(A,B,L) :- findall(A,B,C), setof(A,member(A,C),L). ²Ã»»(trunc(L),SL) :- ²Ã»»(L,SL2), findall(A,(member(B,SL2) , A is trunc(B)),SL),!. ²Ã»»(»Í¼Î¸ÞÆþ(L),SL) :- ²Ã»»(L,SL2), findall(A,(member(B,SL2) , A ¤Ï »Í¼Î¸ÞÆþ(B)),SL),!. ²Ã»»(ÀڼΤÆ(L),SL) :- ²Ã»»(L,SL2), findall(A,(member(B,SL2) , A ¤Ï ÀڼΤÆ(B)),SL),!. ²Ã»»(ÀÚ¤ê¾å¤²(L),SL) :- ²Ã»»(L,SL2), findall(A,(member(B,SL2) , A ¤Ï ÀÚ¤ê¾å¤²(B)),SL),!. ²Ã»»([],L) :- var(L), L = 0.0e+00,!. ²Ã»»([],L) :- \+(var(L)), ²Ã»»¤ÎÊÑ¿ô¤ËÎí¤ò¤ª¤¯(L),!. ²Ã»»([L|R],SL) :- ¤Ê¤é¤Ó(L), žÃÖ([L|R],L1), ²Ã»»_2(L1,SL),!. ²Ã»»(X,S) :- ²Ã»»_1(X,0.0e+00,S). ²Ã»»_1([],S,S) :- !. ²Ã»»_1([A|R],Y,S) :- ¤Ê¤é¤Ó(A), ¤Ê¤é¤Ó(Y), !, ¤Ê¤é¤Ó²Ã»»(A,Y,Z), ²Ã»»_1(R,Z,S),!. ²Ã»»_1([A|R],Y,S) :- atom(A), atom_number(A,I), integer(I), Z is I + Y, ²Ã»»_1(R,Z,S),!. ²Ã»»_1([A|R],Y,S) :- atom(A), atom_number(A,F), real(F), Z is F + Y, ²Ã»»_1(R,Z,S),!. ²Ã»»_1([A|R],Y,S) :- atom(A), ²Ã»»_1(R,Y,S),!. ²Ã»»_1([A|R],Y,S) :- A1 ¤Ï A, Z is A1 + Y, ²Ã»»_1(R,Z,S). ²Ã»»_2([],[]) :- !. ²Ã»»_2([L|R],[S|R2]) :- ²Ã»»(L,S), ²Ã»»_2(R,R2). ¤Ê¤é¤Ó²Ã»»([],L,L) :- !. ¤Ê¤é¤Ó²Ã»»(L,[],L) :- !. ¤Ê¤é¤Ó²Ã»»([A|R],[B|R1],[C|R2]) :- C is A + B, ¤Ê¤é¤Ó²Ã»»(R,R1,R2). ²Ã»»¤ÎÊÑ¿ô¤ËÎí¤ò¤ª¤¯([]) :- !. ²Ã»»¤ÎÊÑ¿ô¤ËÎí¤ò¤ª¤¯([A|R]) :- ÊÑ¿ô(A), A = 0.0e+00, ²Ã»»¤ÎÊÑ¿ô¤ËÎí¤ò¤ª¤¯(R),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/tech/1272006124 # # <ÌäÂê> # Á´¼Ò°÷¤¬Çä¾å¤òµ­Ï¿¤·¤¿Æü¤òµá¤á¤è¡£ # ¤³¤ì¤ò Prolog ¥×¥í¥°¥é¥à¤È¤·¤ÆÉ½¸½¤·¤Ê¤µ¤¤¡£ Çä¾å(°ðÍÕ,'20140228'). Çä¾å(Èøºê,'20140227'). Çä¾å(°ðÍÕ,'20140226'). Çä¾å(Èøºê,'20140226'). Çä¾å(Èøºê,'20140226'). Çä¾å(Èøºê,'20140228'). ¼Ò°÷(Èøºê). ¼Ò°÷(°ðÍÕ). 'Á´¼Ò°÷¤¬Çä¾å¤òµ­Ï¿¤·¤¿Æü¤òµá¤á¤è¡£'(_Á´¼Ò°÷¤¬Çä¾å¤òµ­Ï¿¤·¤¿Æü) :- findsetof(_Æü,Çä¾å(_,_Æü),L), member(_Á´¼Ò°÷¤¬Çä¾å¤òµ­Ï¿¤·¤¿Æü,L), forall(¼Ò°÷(_¼Ò°÷),Çä¾å(_¼Ò°÷,_Á´¼Ò°÷¤¬Çä¾å¤òµ­Ï¿¤·¤¿Æü)). findsetof(A,B,L) :- findall(A,B,C), setof(A,member(A,C),L) . % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1056938879/131 # # table1 # id ̾Á° ¾õÂÖ_id # ------------------ # 1 ¥­¥à¥é A # 2 ÅÄÃæ ¡¡ B # # # talbe2 # id ¾õÂÖ_id ¾õÂÖ(varchar) # ------------------ # 1 A 0 # 2 A 0 # 3 A 1 # 4 B 0 # 5 B 0 # # ·ë²Ì # ̾Á° ¾õÂÖ # ------------------ # ¥­¥à¥é 1 # ÅÄÃæ 0 # # ¤Ë¤Ê¤ë¤è¤¦¤ÊSQLʸ¤Ç¤É¤¦½ñ¤­¤Þ¤Ã¤«¡©¤Á¤Ê¤ß¤ËORACLE9i¡£ # ·ë²Ì(_̾Á°,_¾õÂÖ) :- findsetof(_̾Á°,table1(_,_̾Á°,_),L1), sort(L1,L2), append(_,[_̾Á°|_],L2), table1(_id,_̾Á°,_¾õÂÖ_id) table2(_id,_¾õÂÖ_id,_¾õÂÖ). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/500 # # No-¿§ # ¥ì¥³¡¼¥É£±¡¡001,ÀÖ # ¥ì¥³¡¼¥É2 002,ÀÖ # ¥ì¥³¡¼¥É3¡¡003,ÀÄ # ¥ì¥³¡¼¥É4¡¡004,ÀÄ # ¥ì¥³¡¼¥É5,¡¡005,ÀÖ # ¥ì¥³¡¼¥É6,¡¡006,¹õ # # ¤³¤Î¥Ç¡¼¥¿¤Ç¡¢ ¡Øselect ¿§,count(¿§¡¡from¡¡¥Æ¡¼¥Ö¥ë¡¡group by ¿§¡¡¡Ù¤È¤·¤¿»þ # ºÇÂç¥ì¥³¡¼¥É¿ô¡Ê¤³¤Î¾ì¹ç¡¢ÀÖ¤Î5¡Ë¤ò¼èÆÀ¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¦¡¦¡¦ # ÄêµÁ¤µ¤ì¤¿Àá¿ô¤Î¤â¤Ã¤È¤â¿¤¤¿§¤Ï(_¿§,_ÅÙ¿ô) :- findsetof(_¿§,¥Æ¡¼¥Ö¥ë(_No,_¿§),L1), findall([_ÅÙ¿ô,_¿§],( member(_¿§,L1), count(¥Æ¡¼¥Ö¥ë(_,_¿§),ÅÙ¿ô)), L2), findmax(_ÅÙ¿ô,member([_ÅÙ¿ô,_],L2),_ºÇÂçÅÙ¿ô), append(_,[[_ÅÙ¿ô,_¿§]|R],L2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/408 # # ¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£ # # ¡¦DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó # ¡¡¡¡HiRDB¡¡Ver8 # # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ # ¡ãA¥Æ¡¼¥Ö¥ë¡ä # A1¡¡¡¡¡¡A2¡¡¡¡¡¡A3¡¡¡¡¡¡A4¡¡¡¡¡¡A5 # ------- ------- ------- ------- ---------- # XXXXXXX XX1¡¡¡¡¡¡ABC 3 2009/05/08 # WWCWWCW WW2¡¡¡¡¡¡CCB 1 2008/03/21 # DDDDDDD DD1¡¡¡¡¡¡JPN 5 2007/08/08 # GGGGGGG GX9¡¡¡¡¡¡SOX 2 1977/01/04 # FFFFFFF USJ¡¡¡¡¡¡NPB 3 2001/09/11 # # # ¡ãB¥Æ¡¼¥Ö¥ë¡ä # B1¡¡¡¡¡¡B2¡¡¡¡¡¡B3¡¡¡¡¡¡B4¡¡¡¡¡¡B5 # ------- ------- ------- ------- ---------- # XXXXXXX XX1¡¡¡¡ibicha¡¡ oshimu 2002/07/05 # XXXXXXX XX1¡¡¡¡takeshi okada 2005/07/15 # XXXXXXX XX1¡¡¡¡kamo shu 1857/09/25 # WWCWWCW WW2¡¡¡¡wao wao 2008/10/22 # DDDDDDD DD1¡¡¡¡ui hhh 2006/06/30 # DDDDDDD DD1¡¡¡¡jojoj x5xx 1999/09/09 # DDDDDDD DD1¡¡¡¡momo hara 2005/03/07 # DDDDDDD DD1¡¡¡¡itai u- 2003/12/22 # DDDDDDD DD1¡¡¡¡koma nogoal 2007/04/26 # GGGGGGG GX9 ¡¡ dame record 2009/11/14 # FFFFFFF USJ ¡¡ iki tai 1995/08/15 # FFFFFFF USJ¡¡¡¡sst ebuspi 2004/01/05 # FFFFFFF USJ¡¡¡¡bb pp 2009/08/23 # # ¡¦Íߤ·¤¤·ë²Ì # A1¡¡¡¡¡¡A2¡¡¡¡¡¡B1¡¡¡¡¡¡B2¡¡¡¡¡¡A4 B1andB2COUNT # ------- ------ ------- ------- ------- ------------ # GGGGGGG GX9 GGGGGGG GX9 2 1 # # # ¡¦ÀâÌÀ # SQL¤Ç°ã¤¦¥Æ¡¼¥Ö¥ë¤ÎÃͤòÈæ³Ó¤·¤ÆÃͤ˺¹¤¬¤¢¤ë¥ì¥³¡¼¥É¤òÃê½Ð¤·¤¿¤¤¤Î¤Ç¤¹¤¬¥Ò¥ó¥È¤ò¤¤¤¿¤À¤±¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£ # A1¤ÈB1¤Ï¡¢A2¤ÈB2¤ÏƱ¤¸¥Ç¡¼¥¿¤¬´ðËܤǤ¹¡£ # A¥Æ¡¼¥Ö¥ë¤Î¡ÖA4¡×¥«¥é¥à¤Ë¤ÏB¥Æ¡¼¥Ö¥ë¤Î¥ì¥³¡¼¥É¿ô¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ # ¤·¤«¤·¡¢¤è¤¯¤è¤¯¸«¤ë¤ÈA¥Æ¡¼¥Ö¥ë¤Î¡ÖGGGGGGG¡×¤ÎA4¤Ë¤Ï¡Ö2¡×¤Î¤Ï¤º¤Ê¤Î¤ËB¥Æ¡¼¥Ö¥ë¤Ë¤Ï¼ÂºÝ¤Ë¥ì¥³¡¼¥É¤Ï£±¤Ä¤·¤«¤¢¤ê¤Þ¤»¤ó¡£ # ¤³¤¦¤¤¤¦¾õÂ֤ˤʤäƤ·¤Þ¤Ã¤Æ¤¤¤ë¤Î¤ò³ä¤ê½Ð¤·¤¿¤¤¤Î¤Ç¤¹¤¬¤É¤Î¤è¤¦¤ËA4¤ÈB¥Æ¡¼¥Ö¥ë¤Ç¿ô¤¬¤¢¤Ã¤Æ¤Ê¤¤¤â¤Î¤òÃê½Ð¤Ç¤­¤ë¤Ç¤·¤ç¤¦¤«¡£ # ¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£ # # ½¸ÌóÃÍA4¤ÈB¥Æ¡¼¥Ö¥ë¤ÎÁÈ¿ô¤¬ÉÔÀ°¹ç¤Ç¤¢¤ë¤«¡¢B¥Æ¡¼¥Ö¥ë¤Ë¸ºß¤¹¤ëÁȤν¸Ìó¤¬A¥Æ¡¼¥Ö¥ë¤Ë¤Ê¤¤ :- findsetof([A1,A2],'A¥Æ¡¼¥Ö¥ë'(A1,A2,_,_,_),L1), write('½¸ÌóÃÍA4¤ÈB¥Æ¡¼¥Ö¥ëÁȤÎÉÔÀ°¹ç'), ½¸ÌóÃÍA4¤ÈB¥Æ¡¼¥Ö¥ëÁȤÎÉÔÀ°¹ç(L1), findsetof([B1,B2],(B¥Æ¡¼¥Ö¥ë'(B1,B2,_,_,_),L2), write('B¥Æ¡¼¥Ö¥ë¤Ï¸ºß¤¹¤ë¤¬A¥Æ¡¼¥Ö¥ë¤Ë½¸Ìó¤µ¤ì¤Æ¤¤¤Ê¤¤\n'), 'B¥Æ¡¼¥Ö¥ë¤Ï¸ºß¤¹¤ë¤¬A¥Æ¡¼¥Ö¥ë¤Ë½¸Ìó¤µ¤ì¤Æ¤¤¤Ê¤¤'(L2),!. ½¸ÌóÃÍA4¤ÈB¥Æ¡¼¥Ö¥ëÁȤÎÉÔÀ°¹ç([]) :- !. ½¸ÌóÃÍA4¤ÈB¥Æ¡¼¥Ö¥ëÁȤÎÉÔÀ°¹ç([[A1,A2]|R]) :- 'A¥Æ¡¼¥Ö¥ë'(A1,A2,_,A4,_), count('B¥Æ¡¼¥Ö¥ë'(A1,A2,_,_,_),Count), ¿ÇÃÇ(A1,A2,A4,Count), ½¸ÌóÃÍA4¤ÈB¥Æ¡¼¥Ö¥ëÁȤÎÉÔÀ°¹ç(R). ¿ÇÃÇ(A1,A2,A4,0) :- write('Âбþ¤¹¤ëB¥Æ¡¼¥Ö¥ë¤ÎÁȤ¬¤¢¤ê¤Þ¤»¤ó\n'),!. ¿ÇÃÇ(A1,A2,A4,Count) :- \+(A4=Count), write_formatted('A¥Æ¡¼¥Ö¥ë¤Î¥­¡¼%t,%t¤Î½¸ÌóÃÍA4=%t¤ÈB¥Æ¡¼¥Ö¥ë¤ÎƱ°ì¥­¡¼¤Î¥«¥¦¥ó¥È¤¬ÉÔÀ°¹ç¤Ç¤¹\n',[A1,A2,A4,Count]),!. ¿ÇÃÇ(_,_,_,_). 'B¥Æ¡¼¥Ö¥ë¤Ï¸ºß¤¹¤ë¤¬A¥Æ¡¼¥Ö¥ë¤Ë½¸Ìó¤µ¤ì¤Æ¤¤¤Ê¤¤'([]) :- !. 'B¥Æ¡¼¥Ö¥ë¤Ï¸ºß¤¹¤ë¤¬A¥Æ¡¼¥Ö¥ë¤Ë½¸Ìó¤µ¤ì¤Æ¤¤¤Ê¤¤'([[B1,B2]|R]) :- 'A¥Æ¡¼¥Ö¥ë'(B1,B2,_,_,_), 'B¥Æ¡¼¥Ö¥ë¤Ï¸ºß¤¹¤ë¤¬A¥Æ¡¼¥Ö¥ë¤Ë½¸Ìó¤µ¤ì¤Æ¤¤¤Ê¤¤'(R),!. 'B¥Æ¡¼¥Ö¥ë¤Ï¸ºß¤¹¤ë¤¬A¥Æ¡¼¥Ö¥ë¤Ë½¸Ìó¤µ¤ì¤Æ¤¤¤Ê¤¤'([[B1,B2]|R]) :- 'B¥Æ¡¼¥Ö¥ë'(B1,B2,B3,B4,B5), write_fromatted('A¥Æ¡¼¥Ö¥ë¤Ë½¸Ìó¤¬Â¸ºß¤·¤Ê¤¤ÁȤÏ%t,%t¤Ç¤¹\n',[B1,B2,B3,B4,B5]), 'B¥Æ¡¼¥Ö¥ë¤Ï¸ºß¤¹¤ë¤¬A¥Æ¡¼¥Ö¥ë¤Ë½¸Ìó¤µ¤ì¤Æ¤¤¤Ê¤¤'(R),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/451 # # ºÇ¶á¤Ë¤Ê¤Ã¤Æ£Ä£Â¤ÎÊÙ¶¯¤ò»Ï¤á¤¿¤Î¤Ç¤¹¤¬µÍ¤Ã¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¤Á¤ç¤Ã¤È¼ÁÌ䤵¤»¤Æ¤¯¤À¤µ¤¤¡£ # # »È¤Ã¤Æ¤¤¤ë¤Î¤Ï¡¢derby¤Ç¤¹¡¢¥Ð¡¼¥¸¥ç¥ó¤Ïijµ¯Æ°»þ¤Ë10.5¤Èɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹ # # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿ # ¼õÃíɽ # ------------------- # ¸ÜµÒ¥³¡¼¥É | ¼õÃí¸Ä¿ô # ------------------- # 001 | 100 # 002 | 200 # 003 | 100 # 001 | 300 # 003 | 400 # # ¡¦Íߤ·¤¤·ë²Ì # ·ë²Ì # --------------------------------- # ¸ÜµÒ¥³¡¼¥É | ¸Ä¿ÍÊ¿¶ÑÃÍ | Á´ÂÎÊ¿¶ÑÃÍ # --------------------------------- # 001 |200 |240 # 002 |200 |240 # 003 |250 |240 # # ¡¦ÀâÌÀ # SELECT # ¡¡¡¡¸ÜµÒ¥³¡¼¥É, # ¡¡¡¡AVG(¼õÃí¸Ä¿ô) AS ¸Ä¿ÍÊ¿¶ÑÃÍ, # ¡¡¡¡(SELECT AVG(¼õÃí¸Ä¿ô) FROM ¼õÃíɽ) AS Á´ÂÎÊ¿¶ÑÃÍ¡¡ # FROM # ¼õÃíɽ # GROUP BY # ¸ÜµÒ¥³¡¼¥É; # # ¾åµ­¤Î£Ó£Ñ£Ì¤À¤È¥¨¥é¡¼¤¬½Ð¤ÆÆ°¤«¤Ê¤¤¡Ê¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¼ºÇ°¤·¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡Ë # ¤É¤³¤¬¤É¤¦°­¤¤¤Î¤«¸½ºß¤Î¼«Ê¬¤Ç¤Ïʬ¤«¤é¤Ê¤¯¤Æ¤É¤¦¤·¤è¤¦¤â¤Ê¤¤¾õÂ֤Ǥ¹¡£ # '¼õÃíÊí¤«¤é¡¡¸ÜµÒ¥³¡¼¥É | ¸Ä¿ÍÊ¿¶ÑÃÍ | Á´ÂÎÊ¿¶ÑÃÍ¡¡¤ò³Æ¹Ô¤Ëɽ¼¨' :- findavg(_¼õÃí¸Ä¿ô,¼õÃíɽ(_,_¼õÃí¸Ä¿ô),_Á´ÂÎÊ¿¶ÑÃÍ), findsetof(_¸ÜµÒ¥³¡¼¥É,¼õÃíɽ(_¸ÜµÒ¥³¡¼¥É,_¼õÃí¸Ä¿ô),L), append(_,[_¸ÜµÒ¥³¡¼¥É|R],L), findavg(_¼õÃí¸Ä¿ô,¼õÃíɽ(_¸ÜµÒ¥³¡¼¥É,_¼õÃí¸Ä¿ô),_¸Ä¿ÍÊ¿¶ÑÃÍ), write_formatted('%t | %t | %t\n',[_¸ÜµÒ¥³¡¼¥É,_¸Ä¿ÍÊ¿¶ÑÃÍ,_Á´ÂÎÊ¿¶ÑÃÍ]), R = []. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1252492296/609 # # postgres8.4¤ò»È¤Ã¤Æ¤Þ¤¹¡£ # ¥ì¥³¡¼¥É¿ô¤¬3·ï°Ê¾å¤¢¤ë¤â¤Î¤ò¼èÆÀ¤·¤¿¤¤¤Î¤Ç¤¹¤¬ # ¤É¤¦½ñ¤±¤Ð¤è¤¤¤Ç¤·¤ç¤¦¤«¡£ # # ¤ä¤ê¤¿¤¤¤³¤È¤Î¥¤¥á¡¼¥¸¤Ï¤³¤ó¤Ê´¶¤¸¤Ç¤¹¡£ # select recordCD from Table where recordCD in (select recordCD from Table where count(recordCD) > 3); # % ¤³¤ì¤À¤ÈrecodCD¤¬·ï¿ôʬ½ÐÎϤµ¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢°ì·ï¤Î¤ß¤Î½ÐÎϤËÊѹ¹¤·¤¿ recordCD¤Î°ÌÃÖ¤òÆÀ¤ë(_°ú¿ô¤Î¿ô,_°ÌÃÖÈÖ¹æ) :- '¥Æ¡¼¥Ö¥ë¹½Â¤'('Table',_°ú¿ô¤Î¿ô,_°ÌÃÖÈÖ¹æ,recordCD). ¥ì¥³¡¼¥É¿ô¤¬3·ï°Ê¾å¤¢¤ë¤â¤Î¤ò¼èÆÀ¤¹¤ë(_recordCD) :- recordCD¤Î°ÌÃÖ¤òÆÀ¤ë(_°ú¿ô¤Î¿ô,_°ÌÃÖÈÖ¹æ), functor(Q,'Table',_°ú¿ô¤Î¿ô), arg(_°ÌÃÖÈÖ¹æ,Q,_recordCD), findsetof(_recordCD,call(Q),L1), member(_recordCD,L1), count(Q,Count), Count >= 3. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1252492296/609 # # postgres8.4¤ò»È¤Ã¤Æ¤Þ¤¹¡£ # ¥ì¥³¡¼¥É¿ô¤¬3·ï°Ê¾å¤¢¤ë¤â¤Î¤ò¼èÆÀ¤·¤¿¤¤¤Î¤Ç¤¹¤¬ # ¤É¤¦½ñ¤±¤Ð¤è¤¤¤Ç¤·¤ç¤¦¤«¡£ # # ¤ä¤ê¤¿¤¤¤³¤È¤Î¥¤¥á¡¼¥¸¤Ï¤³¤ó¤Ê´¶¤¸¤Ç¤¹¡£ # select recordCD from Table where recordCD in (select recordCD from Table where count(recordCD) > 3); # % ¤³¤ì¤À¤ÈrecodCD¤¬·ï¿ôʬ½ÐÎϤµ¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢°ì·ï¤Î¤ß¤Î½ÐÎϤËÊѹ¹¤·¤¿ recordCD¤Î°ÌÃÖ¤òÆÀ¤ë(_°ú¿ô¤Î¿ô,_°ÌÃÖÈÖ¹æ) :- '¥Æ¡¼¥Ö¥ë¹½Â¤'('Table',_°ú¿ô¤Î¿ô,_°ÌÃÖÈÖ¹æ,recordCD). ¥ì¥³¡¼¥É¿ô¤¬3·ï°Ê¾å¤¢¤ë¤â¤Î¤ò¼èÆÀ¤¹¤ë(_recordCD) :- recordCD¤Î°ÌÃÖ¤òÆÀ¤ë(_°ú¿ô¤Î¿ô,_°ÌÃÖÈÖ¹æ), functor(Q,'Table',_°ú¿ô¤Î¿ô), arg(_°ÌÃÖÈÖ¹æ,Q,_recordCD), findsetof(_recordCD,call(Q),L1), member(_recordCD,L1), count(Q,Count), Count >= 3. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1252492296/594 # #¡ÊÌä¡Ë # ID | DATE¡¡¡¡¡¡¡¡ | DATA # --+----------+----- # 1 | 2007-11-11 | aaa # 2 | 2007-11-11 | bbb # 1 | 2007-11-10 | ccc # 3 | 2007-11-12 | ddd # 3 | 2007-11-11 | eee # 4 | 2007-11-10 | fff # 1 | 2007-11-12 | ggg # # ¤³¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤«¤é¡¢³Æid¤ËÂФ·¤ÆºÇ¿·¤Î5·ï¤À¤±Ãê½Ð¤·¤Ê¤µ¤¤ ³Æid¤ËÂФ·¤ÆºÇ¿·¤Î5·ï¤À¤±Ãê½Ð¤¹¤ë(_ID,_DATE,_DATA) :- findsetof(_ID,¥Æ¡¼¥Ö¥ë(_ID_1,_DATE_1,_DATA_1),L1), member(_ID,L1), findall([_DATE,_ID,_DATE,_DATA],¥Æ¡¼¥Ö¥ë(_ID1,_DATE,_DATA),L2), ºÇ¿·¤Î5·ï¤òÃê½Ð(L3,Len,_ID,_DATE,_DATA). ºÇ¿·¤Î5·ï¤òÃê½Ð(L1,_ID,_DATE,_DATA) :- sort(L1,L2), reverse(L2,L3), length(L3,Len), '5·ï¤òÃê½Ð'(L3,Len,_ID,_DATE,_DATA). '5·ï¤òÃê½Ð'(L,Len,_ID,_DATE,_DATA) :- Len =< 5, member([_,_ID,_DATE,_DATA],L). '5·ï¤òÃê½Ð'(L,Len,_ID,_DATE,_DATA) :- Len > 5, for(1,N,5), list_nth(N,L,[_,_ID,_DATE,_DATA]), N =< 5. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1252492296/445 # # MySQL 5.1¤Ç¤Î¼ÁÌä¤Ç¤¹¡£ # # A B C # 1 q name1 # 2 w name2 # 3 e name3 # 4 q name4 # 5 t name5 # # ¾åµ­¥Æ¡¼¥Ö¥ë¤ÎBÎó¤Î½ÅÊ£¤ò½ü¤¤¤¿A,B,CÎ󤬤ۤ·¤¤¾ì¹ç # # SELECT DISTINCT B FROM table_name; # # ¤Ç¤ÏBÎó¤Î½ÅÊ£¤ò½ü¤¯¤À¤±¤Ç¾¤ÎÎ󤬤Ȥì¤Þ¤»¤ó¡£Â¾¤ÎÎó¤âÊ»¤»¤Æ¼èÆÀ¤¹¤ë¾ì¹ç¤Ï¤É¤Î¤è¤¦¤Ê²ò·èºö¤¬¤¢¤ê¤Þ¤¹¤«¡© # # ˾¤ó¤Ç¤ë·ë²Ì¤Ï°Ê²¼¤Î¤â¤Î¤Ç¤¹¡£ # # A B C # 1 q name1 # 2 w name2 # 3 e name3 # 5 t name5 # 'BÎó¤Î½ÅÊ£¤ò½ü¤¯ºÝ¤Î¥ë¡¼¥ë'(_½ÅÊ£¹Ô¤Ê¤é¤Ó,_½ÅÊ£¤ò½ü¤¤¤¿¹Ô) :- _½ÅÊ£¹Ô¤Ê¤é¤Ó = [_½ÅÊ£¤ò½ü¤¤¤¿¹Ô|_],!. 'BÎó¤Î½ÅÊ£¤ò½ü¤¤¤¿A,B,CÎ󤬤ۤ·¤¤'(_½ÅÊ£¤ò½ü¤¤¤¿¹Ô) :- findsetof(_BÎó,foo(_,_BÎó,_),_½ÅÊ£¤ò¼è¤ê½ü¤¤¤¿BÎó¤Ê¤é¤Ó), member(_BÎó,_½ÅÊ£¤ò¼è¤ê½ü¤¤¤¿BÎó¤Ê¤é¤Ó), findall(_¹Ô,( member([_AÎó,_BÎó,_CÎó],foo(_AÎó,_BÎó,_CÎó)), L1), 'BÎó¤Î½ÅÊ£¤ò½ü¤¯ºÝ¤Î¥ë¡¼¥ë'(L1,_½ÅÊ£¤ò½ü¤¤¤¿¹Ô). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/386 # # ¡¦DBMS̾¤È¥Ð¡¼¥¸¥ç¥ó # ¡¡¡¡SQL Server Compact 3.5 # # ¡¦¥Æ¡¼¥Ö¥ë¥Ç¡¼¥¿¡¡²È·×Êí¤Î¤è¤¦¤Ê¥Ç¡¼¥¿¤Ç¤¹ # Cd1¡¡Cd2¡¡¡¡Item¡¡¡¡¡¡¡¡¡¡¡¡Cost # ---+----+-----------+---------------- # 1¡¡¡¡¡¡0¡¡¡¡¡¡¡¡¿©Èñ¡¡¡¡¡¡¡¡¡¡¡¡NULL # 1¡¡¡¡¡¡1¡¡¡¡¡¡¡¡ÊÛÅö¡¡¡¡¡¡¡¡¡¡¡¡500 # 2¡¡¡¡¡¡0¡¡¡¡¡¡¡¡¸÷Ç®Èñ¡¡¡¡¡¡¡¡¡¡NULL # 2¡¡¡¡¡¡1¡¡¡¡¡¡¡¡¿åÆ»ÎÁ¡¡¡¡¡¡¡¡¡¡1000 # 2¡¡¡¡¡¡1¡¡¡¡¡¡¡¡¿åÆ»ÎÁ¡¡¡¡¡¡¡¡¡¡2000 # 2¡¡¡¡¡¡2¡¡¡¡¡¡¡¡¥¬¥¹ÎÁ¡¡¡¡¡¡¡¡¡¡4000 ¡¡ # # ¡¦Íߤ·¤¤·ë²Ì # Cd1¡¡Cd2¡¡¡¡Item¡¡¡¡¡¡¡¡¡¡¡¡Sum # ---+----+-----------+---------------- # 1¡¡¡¡¡¡0¡¡¡¡¡¡¡¡¿©Èñ¡¡¡¡¡¡¡¡¡¡¡¡500 # 2¡¡¡¡¡¡0¡¡¡¡¡¡¡¡¸÷Ç®Èñ¡¡¡¡¡¡¡¡7000 # # ¡¦ÀâÌÀ # Cd1¤¬ÂçʬÎà¡¢Cd2¤¬ÃæÊ¬Îà¤òɽ¤·¤Æ¤Þ¤¹¡£ # Cd2¤¬0¤Î¾ì¹ç¡¢Item¤ÏÂçʬÎà¤Î̾¾Î¡£¤½¤ì°Ê³°¤Î¾ì¹ç¡¢ÃæÊ¬Îà¤Î̾¾Î¤¬Æþ¤Ã¤Æ¤Þ¤¹¡£ # ÂçʬÎऴ¤È¤ËItem¤È¹ç·×³Û¤¬Íߤ·¤¤¤Ç¤¹¡£ # # # ÂçʬÎऴ¤È¤ËItem¤È¹ç·×³Û¤¬Íߤ·¤¤ :- findsetof([_Cd1,_Item],²È·×Êí(_cd1,0,_Item,_),L1), member([_Cd1,_Item],L1), findsum(_Cost,(²È·×Êí(_Cd1,_Cd2,_,_Cost),\+(_Cd2=0)),_Sum), write_formatted('%t %t %t %t\n',[_Cd1,0,_Item,_Sum]), fail. ÂçʬÎऴ¤È¤ËItem¤È¹ç·×³Û¤¬Íߤ·¤¤. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/374 # # ¤Ï¤¸¤á¤Þ¤·¤Æ # # ¡¦Access2000 # # ²¼¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤¬¤¢¤Ã¤¿¤È¤­¤Ë # # ¥Æ¡¼¥Ö¥ëA # ̾Á° ²ÊÌÜ ÅÀ¿ô # ---------------------- # ²¬Â¼ ¹ñ¸ì 51 # ²¬Â¼ ¿ô³Ø 48 # ²¬Â¼ ±Ñ¸ì 39 # ÆÁÅÄ ¹ñ¸ì 60 # ÆÁÅÄ ¿ô³Ø 30 # ÆÁÅÄ ±Ñ¸ì 48 # ÅÏÊÕ ¹ñ¸ì 28 # ÅÏÊÕ ¿ô³Ø 67 # ÅÏÊÕ ±Ñ¸ì 25 # # ²¼¤Î¤è¤¦¤Ë³Æ²ÊÌܤκǹâÅÀ¤ò̾Á°¤Ä¤­¤Ç¼èÆÀ¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤Î¤Ç¤·¤ç¤¦¤«¡© # # ·ë²Ì¡Ê³Æ²ÊÌܤκǹâÅÀ¡Ë # ---------------------- # ÆÁÅÄ ¹ñ¸ì 60 # ²¬Â¼ ¿ô³Ø 48 # ÆÁÅÄ ±Ñ¸ì 48 # # # ¤è¤í¤·¤¯¤ª¤Í¤¬¤¤¤·¤Þ¤¹¡£ # # # ³Æ²ÊÌܤκǹâÅÀ¤ò̾Á°¤Ä¤­¤Ç¼èÆÀ¤¹¤ë(_ºÇ¹âÅÀ¤Ê¤é¤Ó) :- findsetof(_²ÊÌÜ,¥Æ¡¼¥Ö¥ëA(_,_²ÊÌÜ,_),_²ÊÌܤʤé¤Ó), findall([_ºÇ¹âÅÀ»á̾,_²ÊÌÜ2,_ºÇ¹âÅÀ],( member(_²ÊÌÜ2,_²ÊÌܤʤé¤Ó), findmax([_ÅÀ¿ô,_̾Á°2],¥Æ¡¼¥Ö¥ëA(_̾Á°2,_²ÊÌÜ2,_ÅÀ¿ô),[_ºÇ¹âÅÀ,_ºÇ¹âÅÀ»á̾])), _ºÇ¹âÅÀ¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/369 # # ²ñ¼Ò¥³¡¼¥É|Éô½ð¥³¡¼¥É|²Ý¥³¡¼¥É|µëÎÁ # # ¤È¤¤¤¦¥Æ¡¼¥Ö¥ë¤¬¤¢¤Ã¤¿¤È¤­¡¢ # GROUP BY ²ñ¼Ò¥³¡¼¥É , Éô½ð¥³¡¼¥É # ¤ÇÉô½ðËè¤ÎµëÎÁ¹ç·×¤ò½Ð¤·¤¿¤¤¤±¤É¡¢ # Ãê½Ð·ë²Ì¤ÎÎó¤Ë¤Ï²Ý¥³¡¼¥É¤â´Þ¤á¤¿¤¤¡¢ # ¤È¤¤¤¦¤È¤­¤Ã¤Æ¤É¤¦¤·¤¿¤éÎɤ¤¤Î¤Ç¤·¤ç¤¦¤«¡© # ¥¤¥á¡¼¥¸¤Ï¢­¤Î´¶¤¸¤Ç¤¹¡£ # A²ñ¼Ò|BÉô½ð|C²Ý|100Ëü±ß # A²ñ¼Ò|BÉô½ð|D²Ý|100Ëü±ß # A²ñ¼Ò|EÉô½ð|F²Ý|500Ëü±ß # A²ñ¼Ò|EÉô½ð|G²Ý|500Ëü±ß # 'Ãê½Ð·ë²Ì¤Ë²Ý¥³¡¼¥É¤ò²Ã¤¨¤¿¡¢²ñ¼Ò¥³¡¼¥É¡¦Éô½ð¥³¡¼¥É¤Ç½¸Ìó¤·¤¿µëÍ¿¹ç·×¤Ê¤é¤Ó'(_µëÍ¿¹ç·×¤Ê¤é¤Ó) :- findsetof([_²ñ¼Ò¥³¡¼¥É,_Éô½ð¥³¡¼¥É,_²Ý¥³¡¼¥É],µëÎÁ(_²ñ¼Ò¥³¡¼¥É,_Éô½ð¥³¡¼¥É,_²Ý¥³¡¼¥É,_),L1), findall([_²ñ¼Ò¥³¡¼¥É,_Éô½ð¥³¡¼¥É,_²Ý¥³¡¼¥É,_µëÍ¿¹ç·×],( member([_²ñ¼Ò¥³¡¼¥É,_Éô½ð¥³¡¼¥É,_²Ý¥³¡¼¥É],L1), findsum(_µëÍ¿,µëÍ¿(_²ñ¼Ò¥³¡¼¥É,_Éô½ð¥³¡¼¥É,_,_µëÍ¿),_µëÍ¿¹ç·×)),_µëÍ¿¹ç·×¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://hibari.2ch.net/test/read.cgi/db/1274791771/364 # # ¾¦ÉÊ¥³¡¼¥É|Çä¾åŹÊÞ|Çä¾å¸Ä¿ô # # ¤È¤¤¤¦¥Æ¡¼¥Ö¥ë¤«¤é¡¢ # ŹÊÞËè¤ÎÇä¾å¤ò¤Þ¤È¤á¤¿Îó¤òÄɲä·¤¿°Ê²¼¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤òºî¤ê¤¿¤¤¤Ç¤¹¡£ # # ¾¦ÉÊ¥³¡¼¥É|ŹÊÞaÇä¾å¸Ä¿ô|ŹÊÞbÇä¾å¸Ä¿ô|ŹÊÞcÇä¾å¸Ä¿ô| # # ¸½ºß¤ÏŹÊÞËè¤ÎÇä¾å¤ò½¸·×¤·¤¿¥Æ¡¼¥Ö¥ë¤òÊ̤˺î¤Ã¤Æ¡¢¤½¤ì¤ò·ë¹ç¤µ¤»¤Æºî¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢¤½¤ì°Ê³°¤Çñ°ì¤Îsql¤Ç½ñ¤¯¾ì¹ç¤É¤¦¤Ê¤ë¤Ç¤·¤ç¤¦¤«¡© # # ´Êñ¤«¤È»×¤Ã¤¿¤é»×¤¤¤Ä¤­¤Þ¤»¤ó¡£¡£ # ¤ª´ê¤¤¤·¤Þ¤¹¡£ # # # '¾¦ÉÊ¥³¡¼¥É|ŹÊÞaÇä¾å¸Ä¿ô|ŹÊÞbÇä¾å¸Ä¿ô|ŹÊÞcÇä¾å¸Ä¿ô|'(_¾¦ÉÊÈֹ桦Çä¾åŹÊÞÊÌÇä¾å¹ç·×¤Ê¤é¤Ó) :- findsetof(_¾¦ÉÊÈÖ¹æ,¾¦ÉÊÇä¾å(_¾¦ÉÊÈÖ¹æ,_,_),L1), findall([_¾¦ÉÊÈÖ¹æ|_ŹÊÞÊÌÇä¾å¹ç·×¤Ê¤é¤Ó],( member(_¾¦ÉÊÈÖ¹æ,L1), findall(_ŹÊÞÊÌÇä¾å¹ç·×¤Ê¤é¤Ó,( member(_Çä¾åŹÊÞ,[a,b,c]), findsum(_Çä¾å¸Ä¿ô, ¾¦ÉÊÇä¾å(_¾¦ÉÊÈÖ¹æ,_Çä¾åŹÊÞ,_Çä¾å¸Ä¿ô), _ŹÊÞÊÌÇä¾å¹ç·×¤Ê¤é¤Ó))), _¾¦ÉÊÈֹ桦Çä¾åŹÊÞÊÌÇä¾å¹ç·×¤Ê¤é¤Ó). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc12.2ch.net/test/read.cgi/tech/1279286575/74 # # ¡Ú¼ÁÌ䥯¥ó¥×¥ì¡Û # [1] ¼ø¶Èñ¸µ¡§¾ðÊó½èÍý²ÝÂê # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§±Ñ¸ì¤Îʸ¾Ï¤Ç¹½À®¤µ¤ì¤ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢¤½¤ÎÃæ¤Ë´Þ¤Þ¤ì¤ëÁíʸ»ú¿ô¤È°Û¤Ê¤ëʸ»ú¤´¤È¤Î½Ð¸½²ó¿ô¤È¤ò¿ô¤¨¾å¤²¤è¡£ # [3.3] ¸À¸ì¡§C # [4] ´ü¸Â¡§2010ǯ07·î19Æü00:00¤Þ¤Ç # [5] ¤½¤Î¾¤ÎÀ©¸Â¡§Xcode¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£ÆÉ¤ß¹þ¤à¥Õ¥¡¥¤¥ë¤Ï"/Users/user/Desktop/data.txt"¤Ç¡£ # # »÷¤¿¤è¤¦¤Ê¥×¥í¥°¥é¥à¤òºî¤Ã¤¿»þ¤Ï¡Ö¿ôÎó¤òÆþÎϤ·Áíʸ»ú¿ô¤È¿ô»ú¤´¤È¤Ë½Ð¸½²ó¿ô¤È¤ò¿ô¤¨¾å¤²¥°¥é¥Õ¤Çɽ¼¨¡×¤È¤¤¤¦¤è¤¦¤Ê²ÝÂê¤Ç # ¿ô»ú¤À¤Ã¤¿¤Î¤Ç0¡Á9¤Þ¤Ç¤òɽ¼¨¤¹¤ë¤³¤È¤¬´Êñ¤Ë½ÐÍè¤Þ¤·¤¿¤¬¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Ê¤Î¤Ça-z¤ò¤É¤¦É½¼¨¤·¤¿¤â¤Î¤« # ¤Þ¤¿strlen¤À¤ÈȾ³Ñ¶õÇò¤â¿ô¤¨¤Æ¤·¤Þ¤¦¤Î¤ÇÁí"ʸ»ú"¿ô¤È¤º¤ì¤Æ¤¯¤ë¤Î¤Ç¤Ï¤Ê¤¤¤«¤ÈǺ¤ó¤Ç¤¤¤Þ¤¹¡£ # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # ±Ñ¸ì¤Îʸ¾Ï¤Ç¹½À®¤µ¤ì¤ë¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ËÂФ·¤Æ¡¢¤½¤ÎÃæ¤Ë´Þ¤Þ¤ì¤ëÁíʸ»ú¿ô¤È°Û¤Ê¤ëʸ»ú¤´¤È¤Î½Ð¸½²ó¿ô¤È¤ò¿ô¤¨¾å¤²¤ë(_Áíʸ»ú¿ô,_ʸ»ú¤´¤È¤Î½Ð¸½ÅÙ¿ô¤Ê¤é¤Ó) :- get_chars('/Users/user/Desktop/data.txt',Chars), length(Chars,_Áíʸ»ú¿ô), findsetof(C,member(C,Chars),L1), findall([C,_½Ð¸½ÅÙ¿ô],(member(C,L1),count(member(C,Chars),_½Ð¸½ÅÙ¿ô)),_ʸ»ú¤´¤È¤Î½Ð¸½ÅÙ¿ô¤Ê¤é¤Ó). findsetof(A,B,L) :- findall(A,B,C), setof(A,member(A,C),L). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc12.2ch.net/test/read.cgi/tech/1276810079/920 # # [1] C¸À¸ì¥×¥í¥°¥é¥ß¥ó¥°±é½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯ # ATM(Automated Teller Machine; ¸½¶â¼«Æ°Í¤±Ê§¤¤µ¡)¥·¥¹¥Æ¥à¤ò¼Â¸½¤¹¤ë¥×¥í¥°¥é¥à¤ò¹Í¤¨¤ë¡£ # # »á̾¡¤¸ýºÂÈֹ桤°Å¾ÚÈֹ桤Ͷâ»Ä¹â¤òÍ×ÁǤȤ¹¤ë¹½Â¤ÂΤòÀë¸À¤·¡¤ 512¿Íʬ¤Î¸ýºÂ¤¬ºîÀ®²Äǽ¤Ê¤è¤¦¤Ë¤»¤è¡¥¤Þ¤¿¡¤½é´üÃͤȤ·¤Æ¼¡¤Î¤è¤¦¤Ë¹½Â¤ÂÎ¤ÎÆâÍÆ¤òÀßÄꤻ¤è¡¥ # # Ω̿ÂÀϺ¤Î¸ýºÂÈÖ¹æ¤Ï1234¤Ç¡¤Í¶â»Ä¹â¤ò1,234,560±ß¤ËÀßÄꤹ¤ë¡¥ # ÌîÏ©²Ö»Ò¤Î¸ýºÂÈÖ¹æ¤Ï5678¤Ç¡¤Í¶â»Ä¹â¤ò987,600±ß¤ËÀßÄꤹ¤ë¡¥ # °á³Þ°ìϺ¤Î¸ýºÂÈÖ¹æ¤Ï9012¤Ç¡¤Í¶â»Ä¹â¤ò538,600±ß¤ËÀßÄꤹ¤ë¡¥ # °Å¾ÚÈÖ¹æ¤Ï¸ýºÂÈÖ¹æ¤Ë1111¤ò­¤·¤Æ10000¤Ç³ä¤Ã¤¿Í¾¤ê¤ËÀßÄꤹ¤ë¡¥ # ¤³¤³¤Ç°Å¾ÚÈÖ¹æ¤Ï¡¢¸ýºÂÈÖ¹æ¤ò°ú¿ô¤È¤·¤Æ¤È¤ê¡¢¤½¤ì¤Ë1111¤ò­¤·¤Æ10000¤Ç # ³ä¤Ã¤¿Í¾¤ê¤ò·×»»¤¹¤ë´Ø¿ô¤òºîÀ®¤·¤ÆÀßÄꤹ¤ë¤³¤È¡¥ # ¾åµ­¤ÎÊýË¡¤Ç½é´üÃͤòÀßÄꤷ¡¢ÀßÄꤵ¤ì¤¿3¿Í¤ÎͶâ»Ä¹â¤ò²èÌ̤ؽÐÎϤ¹¤ë # ¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡¥¤¿¤À¤·¡¢¤Ò¤È¤êʬ¤ÎͶâ»Ä¹â¤òɽ¼¨¤¹¤ë´Ø¿ô¤òºîÀ®¤·¤Æ¡¢ # ¤³¤ì¤ò·«¤êÊÖ¤·»È¤Ã¤Æ3¿Í¤ÎͶâ»Ä¹â¤ò½ÐÎϤ¹¤ë¤³¤È¡¥ # # % ./initAccount # Ͷâ»Ä¹â¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹¡¥ # Ω̿ÂÀϺ (1234) 1234560 ±ß # ÌîÏ©²Ö»Ò (5678) 987600 ±ß # °á³Þ°ìϺ (9012) 538600 ±ß # % Ͷâ¸ýºÂ¤Î½é´üÀßÄê(_¥Õ¥¡¥¤¥ë) :- w3c('http://pc12.2ch.net/test/read.cgi/tech/1276810079/920',Lines), append(_,[Line|R],Lines), split(Line,[¤Î¸ýºÂÈÖ¹æ¤Ï,'¤Ç,Ãù¶â»Ä¹â¤ò,±ß¤ËÀßÄꤹ¤ë.'],[_»á̾,_¸ýºÂÈÖ¹æ,_Ͷâ»Ä¹â]), assertz(Ͷâ¸ýºÂ(_»á̾,_¸ýºÂÈÖ¹æ,_Ͷâ»Ä¹â)), _°Å¾ÚÈÖ¹æ is (_¸ýºÂÈÖ¹æ + 1111) mod 10000, assertz(Ͷâ¸ýºÂ°Å¾ÚÈÖ¹æ(_¸ýºÂÈÖ¹æ,_°Å¾ÚÈÖ¹æ)), R = [],!. Ͷâ¸ýºÂ¤Î½é´üÀßÄê(_). ÀßÄꤵ¤ì¤¿3¿Í¤ÎͶâ»Ä¹â¤ò²èÌ̤ؽÐÎϤ¹¤ë :- findsetof(_¸ýºÂÈÖ¹æ,Ͷâ¸ýºÂ(_,_¸ýºÂÈÖ¹æ,_),_¸ýºÂÈÖ¹æ¤Ê¤é¤Ó), write('Ͷâ»Ä¹â¤Ï¼¡¤Î¤È¤ª¤ê¤Ç¤¹.\n'), append(_,[_¸ýºÂÈÖ¹æ|R],_¸ýºÂÈÖ¹æ¤Ê¤é¤Ó), ¤Ò¤È¤êʬ¤ÎͶâ»Ä¹â¤òɽ¼¨¤¹¤ë(_¸ýºÂÈÖ¹æ), R = []. ¤Ò¤È¤êʬ¤ÎͶâ»Ä¹â¤òɽ¼¨¤¹¤ë(_¸ýºÂÈÖ¹æ) :- Ͷâ¸ýºÂ(_»á̾,_¸ýºÂÈÖ¹æ,_Ͷâ»Ä¹â), write_formatted('%t (%t) %t ±ß\n',[_»á̾,_¸ýºÂÈÖ¹æ,_Ͷâ»Ä¹â]),!. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc12.2ch.net/test/read.cgi/tech/1276810079/887 # # [1] ¼ø¶Èñ¸µ¡§¥×¥í¥°¥é¥ß¥ó¥°±é½¬ # [2] ÌäÂêʸ(´Þ¥³¡¼¥É&¥ê¥ó¥¯)¡§ # fgets() ¤ò»È¤Ã¤Æ50ʸ»ú°Ê²¼¤Îʸ»úÎó¤òÆþÎϤ·¡¤Ê¸»úÎóÃæ¤Î³Æ # ʸ»ú¤Î½Ð¸½²ó¿ô¤ò¿ô¤¨¤ë¥×¥í¥°¥é¥à¤òºîÀ®¤»¤è¡£ # ¼Â¹ÔÎã # ʸ»úÎó¤Ï¡© abcdef,abb(ccc110) # a : 2 # b : 3 # c : 4 # d : 1 # e : 1 # f : 1 # , : 1 # ( : 1 # 1 : 2 # 0 : 1 # ) : 1 # '50ʸ»ú°Ê²¼¤Îʸ»úÎó¤òÆþÎϤ·¡¤Ê¸»úÎóÃæ¤Î³ÆÊ¸»ú¤Î½Ð¸½²ó¿ô¤ò¿ô¤¨¤ë' :- '50ʸ»ú°Ê²¼¤Îʸ»úÎó¤òÆþÎϤ·'(_50ʸ»ú°Ê²¼¤Îʸ»úÎó), ʸ»úÎóÃæ¤Î³ÆÊ¸»ú¤Î½Ð¸½²ó¿ô¤ò¿ô¤¨¤ë(_50ʸ»ú°Ê²¼¤Îʸ»úÎó,_ʸ»ú¤´¤È¤Î½Ð¸½²ó¿ô¤Ê¤é¤Ó), ʸ»ú¤´¤È¤Î½Ð¸½²ó¿ô¤òɽ¼¨¤¹¤ë(_ʸ»ú¤´¤È¤Î½Ð¸½²ó¿ô¤Ê¤é¤Ó). '50ʸ»ú°Ê²¼¤Îʸ»úÎó¤òÆþÎϤ·'(_50ʸ»ú°Ê²¼¤Îʸ»úÎó) :- get_line(_50ʸ»ú°Ê²¼¤Îʸ»úÎó), length(_50ʸ»ú°Ê²¼¤Îʸ»úÎó,_ʸ»ú¿ô), _ʸ»ú¿ô =< 50. ʸ»úÎóÃæ¤Î³ÆÊ¸»ú¤Î½Ð¸½²ó¿ô¤ò¿ô¤¨¤ë(_ʸ»úÎó,_½Ð¸½²ó¿ô¤Ê¤é¤Ó) :- ¤É¤ó¤Êʸ»ú¤¬½Ð¸½¤·¤¿¤«¤Ê¤é¤Ó¤Ë¿ô¤¨¾å¤²¤ë(_ʸ»úÎó,_½ÅÊ£¤òµö¤µ¤Ê¤¤Ê¸»ú¤Ê¤é¤Ó), ³ÆÊ¸»ú¤Î½Ð¸½²ó¿ô¤ò¿ô¤¨¤ë(_ʸ»úÎó,_½ÅÊ£¤òµö¤µ¤Ê¤¤Ê¸»ú¤Ê¤é¤Ó,_½Ð¸½²ó¿ô¤Ê¤é¤Ó). ¤É¤ó¤Êʸ»ú¤¬½Ð¸½¤·¤¿¤«¤Ê¤é¤Ó¤Ë¿ô¤¨¾å¤²¤ë(_ʸ»úÎó,_½ÅÊ£¤òµö¤µ¤Ê¤¤Ê¸»ú¤Ê¤é¤Ó) :- findsetof(_ʸ»ú,( sub_atom(_ʸ»úÎó,_,1,_,_ʸ»ú)), _½ÅÊ£¤òµö¤µ¤Ê¤¤Ê¸»ú¤Ê¤é¤Ó). ³ÆÊ¸»ú¤Î½Ð¸½²ó¿ô¤ò¿ô¤¨¤ë(_ʸ»úÎó,_½ÅÊ£¤òµö¤µ¤Ê¤¤Ê¸»ú¤Ê¤é¤Ó,_½Ð¸½²ó¿ô¤Ê¤é¤Ó) :- findall([_½Ð¸½²ó¿ô,_ʸ»ú],( append(_,[_ʸ»ú|_],_½ÅÊ£¤òµö¤µ¤Ê¤¤Ê¸»ú¤Ê¤é¤Ó), count(sub_atom(_ʸ»úÎó,_,1,_,_ʸ»ú),_½Ð¸½²ó¿ô)), _½Ð¸½²ó¿ô¤Ê¤é¤Ó). ʸ»ú¤´¤È¤Î½Ð¸½²ó¿ô¤òɽ¼¨¤¹¤ë(_ʸ»ú¤´¤È¤Î½Ð¸½²ó¿ô¤Ê¤é¤Ó) :- append(_,[[_½Ð¸½²ó¿ô,_ʸ»ú]|R],_ʸ»ú¤´¤È¤Î½Ð¸½²ó¿ô¤Ê¤é¤Ó), writef('%t : %t\n',[_ʸ»ú,_½Ð¸½²ó¿ô]), R = []. % % ʸ»úÎó¤ò¤Ê¤é¤Ó¡Ê¥ê¥¹¥È¡Ë¤ËÊÑ´¹¤·¤Ê¤¤¾ì¹ç¤Ï¡¢Èó·èÄêÀ­½Ò¸ìsub_atom/5¤ò»È¤¦¡£ % % ½Ð¸½²ó¿ô¤Èʸ»ú¤ÎʤӤ¬¤Ò¤Ã¤¯¤êÊ֤äƤ¤¤ë¤Î¤ÏÀ°Îó¤òµá¤á¤é¤ì¤¿¾ì¹ç¤Ø¤ÎÈ÷¤¨¤À¤¬¡¢ % ¹¥¤Þ¤·¤¤¤³¤È¤Ç¤Ï¤Ê¤¤¤«¤âÃΤì¤Ê¤¤¡£ % % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1274791771/243 # #¡¡¥×¥í¥°¥é¥à¸À¸ì¤Ç°Ê²¼¤Î½¸Ìó¤òÄêµÁ¤·¤Ê¤µ¤¤¡£¡¡ #¡¡SELECT CASE pref_name #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN 'ÆÁÅç' THEN '»Í¹ñ' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN '¹áÀî' THEN '»Í¹ñ' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN '°¦É²' THEN '»Í¹ñ' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN '¹âÃÎ' THEN '»Í¹ñ' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN 'Ê¡²¬' THEN '¶å½£' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN 'º´²ì' THEN '¶å½£' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN 'Ĺºê' THEN '¶å½£' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ELSE '¤½¤Î¾' END AS district, #¡¡¡¡¡¡¡¡¡¡SUM(population) #¡¡¡¡FROM PopTbl #¡¡¡¡GROUP BY CASE pref_name #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN 'ÆÁÅç' THEN '»Í¹ñ' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN '¹áÀî' THEN '»Í¹ñ' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN '°¦É²' THEN '»Í¹ñ' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN '¹âÃÎ' THEN '»Í¹ñ' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN 'Ê¡²¬' THEN '¶å½£' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN 'º´²ì' THEN '¶å½£' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ WHEN 'Ĺºê' THEN '¶å½£' #¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ELSE '¤½¤Î¾' END; ÃÏÊý¤Ç½¸Ì󤹤ë(_ÃÏÊý,_¿Í¸ý) :- findsetof(_ÃÏÊý,( 'PopTbl'(_pref_name,_population), ÃÏÊý(_ÃÏÊý,_pref_name)), L1), append(_,[_ÃÏÊý|_],L1), findsum(_population,( 'PopTbl'(_pref_name,_population), ÃÏÊý(_ÃÏÊý,_pref_name)), _¿Í¸ý). ÃÏÊý(»Í¹ñ,ÆÁÅç). ÃÏÊý(»Í¹ñ,¹áÀî). ÃÏÊý(»Í¹ñ,°¦É²). ÃÏÊý(»Í¹ñ,¹âÃÎ). ÃÏÊý(¶å½£,Ê¡²¬). ÃÏÊý(¶å½£,º´²ì). ÃÏÊý(¶å½£,Ĺºê). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1274791771/231 # # tbl1¤Ënum1,num2,id1,id2,id3 # tbl2¤Ëid,name,ss¤È¤¤¤¦¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ë¤È¤·¤Æ # SELECT name, num1, num2, id1, id2, id3, time FROM tbl1, tbl2 # WHERE num1 = 1 # AND id1 = ( SELECT id FROM tbl2 WHERE ss = "monga") # ¾åµ­¤Î¤è¤¦¤ÊSQL¤ò # ÆÃÄê¤Î¥Õ¥£¡¼¥ë¥É¤¬Â¾¤Î¹Ô¤È½ÅÊ£¤·¤Æ¤¿¤éÈ´¤«¤¹¤È¤¤¤¦¤Î¤Ï¤É¤¦¤ä¤ì¤Ð¤¤¤¤¤Ç¤·¤ç¤¦¤«¡© # ñ¤Ëdistinct¤Ä¤±¤ë¤À¤±¤À¤È¤É¤ì¤«¤Ò¤È¤Ä¤Ç¤â½ÅÊ£¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤éÃê½Ð¤µ¤ì¤Þ¤¹¤è¤Í¡£ # id1,id2,id3¤¬Â¾¤Î¥ì¥³¡¼¥É¤Îid1,id2,id3¤È½ÅÊ£¤·¤Æ¤¿¤é # ¸¡º÷·ë²Ì¤ËÆþ¤ì¤Ê¤¤¤ß¤¿¤¤¤Ê´¶¤¸¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡£ # MYSQL¤Ç¤¹¡£ 'id1,id2,id3¤¬Â¾¤Î¥ì¥³¡¼¥É¤Îid1,id2,id3¤È½ÅÊ£¤·¤Æ¤¿¤é¸¡º÷·ë²Ì¤ËÆþ¤ì¤Ê¤¤'([_name,_num1,_num2,_id1,_id2,_id3]) :- findall([_name,_num1,_num2,_id1,_id2,_id3],( tbl1(num1,_num2,_id1,_id2,_id3), num1 = 1, tbl2(id1,_name,monga)), L1), findsetof([_id1,_id2,_id3],member([_,_,_,_id1,_id2,_id3],L1),L2), findall([_id1,_id2,_id3],( count((member([_id1,_id2,_id3],L2),1)), L2), member([_name,_num1,_num2,_id1,_id2,_id3],L1), member([_id1,_id2,_id3],L2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1274791771/139 # # ´ü´Ö¤ÎÃê½Ð¤Ë¤Ä¤¤¤ÆÁêÃ̤Ǥ¹¡£ # ¸µ¾ðÊó # ID¡¡¡¡¡¡¡¡START¡¡¡¡¡¡¡¡END # -----¡¡¡¡ -----¡¡¡¡¡¡¡¡----- # 10¡¡¡¡¡¡¡¡2010/06/01¡¡ 2010/06/12 # 10¡¡¡¡¡¡¡¡2010/06/13¡¡ 2010/06/14 # 10¡¡¡¡¡¡¡¡2010/06/15¡¡ NULL # 20¡¡¡¡¡¡¡¡2010/06/01¡¡ 2010/06/11 # 20¡¡¡¡¡¡¡¡2010/06/13¡¡ 2010/06/15 # ¢­ # Íߤ·¤¤¾ðÊó # ID¡¡¡¡¡¡¡¡START¡¡¡¡¡¡¡¡END # -----¡¡¡¡ -----¡¡¡¡¡¡¡¡----- # 10¡¡¡¡¡¡¡¡2010/06/01¡¡ NULL # 20¡¡¡¡¡¡¡¡2010/06/01¡¡ 2010/06/11 # 20¡¡¡¡¡¡¡¡2010/06/13¡¡ 2010/06/15 # # ¡¦³«»ÏÆü¡¢½ªÎ»Æü¤Î´ü´Ö½ÅÊ£¤Ï¤Ê¤· # ¡¦ID¤´¤È¤Ë¥Ç¡¼¥¿¤òÃê½Ð¡£Ãê½Ðñ°Ì¤ÏϢ³¤·¤Æ¤¤¤ë´ü´Ö¤ÎºÇ¾®³«»ÏÆü¤ÈºÇÂ罪λÆü # ¡¦´ü´Ö¤ÏåºÎï¤ËϢ³¡ÊID=10¡Ë¤¹¤ë¤³¤È¤â¤¢¤ì¤ÐÈóϢ³¤¹¤ë¤³¤È¤â¤¢¤ë¡ÊID=20¡Ë # # ¥¢¥É¥Ð¥¤¥¹´ê¤¤¤Þ¤¹¡£ # # 'ID¤´¤È¤Ë¥Ç¡¼¥¿¤òÃê½Ð¡£Ãê½Ðñ°Ì¤ÏϢ³¤·¤Æ¤¤¤ë´ü´Ö¤ÎºÇ¾®³«»ÏÆü¤ÈºÇÂ罪λÆü' :- findsetof(_ID,´ü´Ö(_ID,_´ü´Ö²¼¸Â,_´ü´Ö¾å¸Â),L1), findall([_ID,_ºÇ¾®³«»ÏÆü,_ºÇÂ罪λÆü],( member(_ID,L1), findmin([_ID,_³«»ÏÆü],³«»ÏÆü(_ID,_³«»ÏÆü),_ºÇ¾®³«»ÏÆü), findmax([_ID,_½ªÎ»Æü],½ªÎ»Æü(_ID,_½ªÎ»Æü),_ºÇÂ罪λÆü)), L). write('ID START END \n----- ----- ----- \n'), append(_,[[_ID,_Start,_End]|R],L), write_formatted('%t %t %t\n',[_ID,_Start,_End]), R = []. ³«»ÏÆü(_ID,_³«»ÏÆü) :- ´ü´Ö(_ID,_³«»ÏÆü,_). ½ªÎ»Æü(_ID,_½ªÎ»Æü) :- ´ü´Ö(_ID,_³«»ÏÆü,_½ªÎ»Æü),\+(_½ªÎ»Æü='NULL'). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1274791771/96 # # ¶µ¤¨¤Æ¤¯¤À¤µ¤¤ # table a¤«¤é(dept,place)¤Ç¤Î¤¯¤¯¤ê¤Çcount ¤Î¼¡¤Î¥ì¥¹¤Ë¼¨¤¹¤è¤¦¤Ëtop3¤òÃê½Ð¤·¤¿¤¤¤Ç¤¹ # # table a # dept|place|ext|count # aaaa|aaaaa|jar|10 # aaaa|aaaaa|com|4 # aaaa|aaaaa|scr|20 # aaaa|aaaaa|exe|80 # aaaa|aaaaa|bat|2 # aaaa|bbbbb|ace|10 # aaaa|bbbbb|arj|4 # aaaa|bbbbb|zip|20 # aaaa|bbbbb|rar|80 # aaaa|bbbbb|lzh|2 # bbbb|aaaaa|mdb|10 # bbbb|aaaaa|xls|4 # bbbb|aaaaa|ppt|20 # bbbb|aaaaa|doc|80 # bbbb|aaaaa|txt|2 # bbbb|bbbbb|gif|10 # bbbb|bbbbb|png|4 # bbbb|bbbbb|jpg|20 # bbbb|bbbbb|bmp|80 # bbbb|bbbbb|tif|2 # ¢­ # aaaa|aaaaa|exe|80 # aaaa|aaaaa|scr|20 # aaaa|aaaaa|jar|10 # aaaa|bbbbb|rar|80 # aaaa|bbbbb|zip|20 # aaaa|bbbbb|ace|10 # bbbb|aaaaa|doc|80 # bbbb|aaaaa|ppt|20 # bbbb|aaaaa|mdb|10 # bbbb|bbbbb|bmp|80 # bbbb|bbbbb|jpg|20 # bbbb|bbbbb|gif|10 # 'table a¤«¤édept,place¤Î¤¯¤¯¤ê¤Çcount¤Îtop3¤òÃê½Ð' :- ¡¡¡¡¡¡¡¡findsetof([_dept,_place],a(_dept,_place,_exit,_count)), ¡¡¡¡¡¡¡¡findall(X,findrsort([_count],a(_dept,_place,_ext,_count),X),L), ¡¡¡¡¡¡¡¡for(1,N,3), ¡¡¡¡¡¡¡¡list_nth(N,L,X), ¡¡¡¡¡¡¡¡write_formatted('%t|%t|%t|%t\n',X), ¡¡¡¡¡¡¡¡N = 3, ¡¡¡¡¡¡¡¡fail. 'table a¤«¤édept,place¤Î¤¯¤¯¤ê¤Çcount¤Îtop3¤òÃê½Ð'. % findrsort/3,findsetof/2 ¤Ï http://nojiriko.asia/prolog/findsort.html »²¾È % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1274791771/39 # # # maindata # ----------------------------- # main_id | main_name | junle # ----------------------------- # 1000001 | aaaaaaaaa | 1 # 1000002 | bbbbbbbbb | 2 # 1000003 | ccccccccc | 1 # 1000004 | ddddddddd | 3 # 1000005 | eeeeeeeee | 1 # # itemdata # -------------------- # item_id | item_name # -------------------- # 9000001 | AAAAAAAAA # 9000002 | BBBBBBBBB # 9000003 | CCCCCCCCC # 9000004 | DDDDDDDDD # 9000005 | EEEEEEEEE # # itemlist # ------------------ # main_id | item_id # ------------------ # 1000001 | 9000001 # 1000001 | 9000004 # 1000002 | 9000002 # 1000002 | 9000005 # 1000004 | 9000002 # 1000004 | 9000004 # 1000004 | 9000005 # # ¤È¤¤¤¦£³¤Ä¤Î¥Æ¡¼¥Ö¥ë¤¬¤¢¤ë¾ì¹ç¤Ë¡¢maindata.junle='1'¤ò¾ò·ï¤Ë # main_id | main_name | itemlists # ---------------------------------------------------- # 1000001 | aaaaaaaaa | AAAAAAAAA DDDDDDDDD # 1000003 | ccccccccc | # 1000004 | eeeeeeeee | BBBBBBBBB DDDDDDDDD EEEEEEEEE # ---------------------------------------------------- # ¢¨itemlists¤Ï¶õÇò¤ÇÏ¢·ë # # ¤È¤¤¤¦·ë²Ì¤òµá¤á¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ # ¥µ¥Ö¥¯¥¨¥ê¤òÍøÍѤ·¤Æ°ìÅ٤˵á¤á¤ë¤³¤È¤Ï²Äǽ¤Ç¤·¤ç¤¦¤«¡© # ¤½¤ì¤È¤â¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¦¤Ç¥ë¡¼¥×¤ÎºÝ¤ËÅÔÅÙitemlists¤òÀ¸À®¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¤Ç¤·¤ç¤¦¤«¡© # 'main_id | main_name | itemlists'(_main_id,_main_name,_itemlists) :- findsetof([_main_id,_main_name],( _junle='1', maindata(_main_id,_main_name,_junle)), L), member([_main_id,_main_name],L), findall(_item_name,( itemlist(_main_id,_item_id), itemdata(_item_id,_item_name)), _itemlists_1), concat_atom(_itemlists_1,' ',_itemlists). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: 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), ²Ù»ÑÊÑ´¹(_²Ù»Ñ,_¿ôÎÌ,_¿ôÎÌ,_ñ²Á,_ñ²Á,_¶â³Û,_¶â³Û) :- ¤Ä¤Þ¤ê²Ù»ÑÊÑ´¹¤Ï¹Ô¤ï¤Ê¤¤. ¤Ä¤Þ¤ê²Ù»ÑÊÑ´¹¤Ï¹Ô¤ï¤Ê¤¤. */ % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc12.2ch.net/test/read.cgi/tech/1269438098/901 # # ../test/read.cgi/tech/1269438098/900 # ¤³¤ó¤ÊÆþÎÏ¡¦½ÐÎÏÎã¤Ç¤¤¤¤¤Î¡© # # Input: # # 2 # 1,1,murayama # 1,2,sugano # 3,3,koizumi # 3,4,abe # 5,5,hatoyama # 6,6,ozawa # # Output: # # #1 # Rep. Name: murayama # Rep. Attendance: 1 # Group: 001 # Group Attendance: 2 # # #2 # Rep. Name: koizumi # Rep. Attendance: 1 # Group: 003 # Group Attendance: 2 # Âåɽ¤ÎÀ¸Å̤Î̾Á°¡¢Âåɽ¼Ô¤Î½ÐÀʲó¿ô¡¢¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¡¢¥°¥ë¡¼¥×¤ÎÁ´ÂΤνÐÀʲó¿ô¤Î¾å°ÌxÈÖ¤À¤±½ÐÎϤ¹¤ë(_Âåɽ¤ÎÀ¸Å̤Î̾Á°,_Âåɽ¼Ô¤Î½ÐÀʲó¿ô,_¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¾å°Ì5°Ì,_¥°¥ë¡¼¥×Á´ÂΤνÐÀʲó¿ô¾å°Ì5°Ì) :- findall([_Âåɽ¤Î¸Ä¿ÍID,_̾Á°],À¸ÅÌ(_Âåɽ¤Î¸Ä¿ÍID,_Âåɽ¤Î¸Ä¿ÍID,_̾Á°),_Âåɽ¤Î¸Ä¿ÍID¡¦Ì¾Á°¤Ê¤é¤Ó), member([_Âåɽ¤Î¸Ä¿ÍID,_̾Á°],_Âåɽ¤Î¸Ä¿ÍID¡¦Ì¾Á°¤Ê¤é¤Ó), Âåɽ¼Ô¤Î½ÐÀʲó¿ô(_Âåɽ¤Î¸Ä¿ÍID,_Âåɽ¼Ô¤Î½ÐÀʲó¿ô), ¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô(_Âåɽ¤ÎID,_¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¤Ê¤é¤Ó), ¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¾å°Ì5°Ì(_¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¤Ê¤é¤Ó,¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¾å°Ì5°Ì), ¥°¥ë¡¼¥×Á´ÂΤνÐÀʲó¿ô(_Âåɽ¤ÎID,_¥°¥ë¡¼¥×Á´ÂΤνÐÀʲó¿ô¤Ê¤é¤Ó), ¥°¥ë¡¼¥×Á´ÂΤνÐÀʲó¿ô¾å°Ì5°Ì(_¥°¥ë¡¼¥×Á´ÂΤνÐÀʲó¿ô¤Ê¤é¤Ó,¥°¥ë¡¼¥×Á´ÂΤνÐÀʲó¿ô¾å°Ì5°Ì). Âåɽ¼Ô¤Î½ÐÀʲó¿ô(_Âåɽ¤Î¸Ä¿ÍID,_Âåɽ¼Ô¤Î½ÐÀʲó¿ô) :- count(½ÐÀʼÔ(_Âåɽ¤Î¸Ä¿ÍID),_Âåɽ¼Ô¤Î½ÐÀʲó¿ô). ¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô(_Âåɽ¤ÎID,_¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¤Ê¤é¤Ó) :- findsetof(_¸Ä¿ÍID,(À¸ÅÌ(_Âåɽ¤ÎID,_¸Ä¿ÍID,_),\+(_Âåɽ¤ÎID=_¸Ä¿Í¤ÎID)),_¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Ê¤é¤Ó), findall([_½ÐÀʲó¿ô,_¸Ä¿ÍID], ( member(_¸Ä¿ÍID,_¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Ê¤é¤Ó), count(½ÐÀʼÔ(_¸Ä¿ÍID),_½ÐÀʲó¿ô)), _¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¤Ê¤é¤Ó),!. ¥°¥ë¡¼¥×Á´ÂΤνÐÀʲó¿ô(_Âåɽ¤ÎID,_¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¤Ê¤é¤Ó) :- findsetof(_¸Ä¿ÍID,À¸ÅÌ(_Âåɽ¤ÎID,_¸Ä¿ÍID,_),_¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Ê¤é¤Ó), findall([_½ÐÀʲó¿ô,_¸Ä¿ÍID], ( member(_¸Ä¿ÍID,_¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Ê¤é¤Ó), count(½ÐÀʼÔ(_¸Ä¿ÍID),_½ÐÀʲó¿ô)), _¥°¥ë¡¼¥×Á´ÂΤνÐÀʲó¿ô¤Ê¤é¤Ó),!. ¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¾å°ÌN°Ì(N,_¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¤Ê¤é¤Ó,_¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¾å°Ì5°Ì) :- Â礭¤¤½ç¤Ë¾å°ÌN°Ì(N,_¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¤Ê¤é¤Ó,_¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤Î½ÐÀʲó¿ô¾å°Ì5°Ì). ¥°¥ë¡¼¥×Á´ÂΤνÐÀʲó¿ô¾å°ÌN°Ì(N,_¥°¥ë¡¼¥×Á´ÂΤνÐÀʲó¿ô¤Ê¤é¤Ó,_¥°¥ë¡¼¥×Á´ÂΤνÐÀʲó¿ô¾å°Ì5°Ì) :- Â礭¤¤½ç¤Ë¾å°ÌN°Ì(N,_¥°¥ë¡¼¥×Á´ÂΤνÐÀʲó¿ô¤Ê¤é¤Ó,_¥°¥ë¡¼¥×Á´ÂΤνÐÀʲó¿ô¾å°Ì5°Ì). Â礭¤¤½ç¤Ë¾å°ÌN°Ì(L1,L) :- sort(L1,L2), reverse(L2,L3), length(L,N), append(L,_,L3),!. Â礭¤¤½ç¤Ë¾å°ÌN°Ì(L1,L) :- sort(L1,L2), reverse(L2,L),!. ¥­¡¼¥Ü¡¼¥É¤«¤éÂåɽ¼Ô¤ÎID,¸Ä¿Í¤ÎID,̾Á°¤òÆþÎϤ¹¤ë¤â¤Î¤È¤·¡¢¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤ÏÂåɽ¼Ô¤ÎID¤Ç¤Î¤ß¤Ç´ØÏ¢ÉÕ¤±¤µ¤ì¤ë :- ¥­¡¼¥Ü¡¼¥É¤«¤éÂåɽ¼Ô¤ÎID,¸Ä¿Í¤ÎID,̾Á°¤òÆþÎϤ¹¤ë(_Âåɽ¼Ô¤ÎID,_¸Ä¿Í¤ÎID,_̾Á°), assertz(À¸ÅÌ(_Âåɽ¼Ô¤ÎID,_¸Ä¿Í¤ÎID,_̾Á°)), ¥­¡¼¥Ü¡¼¥É¤«¤éÂåɽ¼Ô¤ÎID,¸Ä¿Í¤ÎID,̾Á°¤òÆþÎϤ¹¤ë¤â¤Î¤È¤·¡¢¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤ÏÂåɽ¼Ô¤ÎID¤Ç¤Î¤ß¤Ç´ØÏ¢ÉÕ¤±¤µ¤ì¤ë. ¥­¡¼¥Ü¡¼¥É¤«¤éÂåɽ¼Ô¤ÎID,¸Ä¿Í¤ÎID,̾Á°¤òÆþÎϤ¹¤ë¤â¤Î¤È¤·¡¢¥°¥ë¡¼¥×¥á¥ó¥Ð¡¼¤ÏÂåɽ¼Ô¤ÎID¤Ç¤Î¤ß¤Ç´ØÏ¢ÉÕ¤±¤µ¤ì¤ë. ¥­¡¼¥Ü¡¼¥É¤«¤éÂåɽ¼Ô¤ÎID,¸Ä¿Í¤ÎID,̾Á°¤òÆþÎϤ¹¤ë(_Âåɽ¼Ô¤ÎID,_¸Ä¿Í¤ÎID,_̾Á°) :- get_split_line([','],[_Âåɽ¼Ô¤ÎID,_¸Ä¿Í¤ÎID,_̾Á°]). ½ÐÀÊ¼Ô¤ÎÆþÎÏ :- get_line(Line), atom_to_term(Line,_¸Ä¿ÍID,_), integer(_¸Ä¿ÍID), assertz(½ÐÀʼÔ(_¸Ä¿ÍID)), ½ÐÀÊ¼Ô¤ÎÆþÎÏ. ½ÐÀÊ¼Ô¤ÎÆþÎÏ. % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1252492296/933 # # DEFENDANT¡¡ GUILT¡¡ JOROR # -----------+-------+-------- # HOGE ¡¡ ¡¡ ¡¡| 1¡¡¡¡¡¡¡¡ | FOO # HOGE ¡¡ ¡¡ ¡¡| 0¡¡¡¡¡¡¡¡ | BAR # HOGE ¡¡ ¡¡ ¡¡| 1¡¡¡¡¡¡¡¡ | BAZ # FUGA¡¡¡¡¡¡¡¡ | 1¡¡¡¡¡¡¡¡ | FOO # FUGA¡¡¡¡¡¡¡¡ | 1¡¡¡¡¡¡¡¡ | BAR # FUGA¡¡¡¡¡¡¡¡ | 1¡¡¡¡¡¡¡¡ | BAZ¡¡¡¡¡¡¡¡¡¡(T_JUDGE¥Æ¡¼¥Ö¥ë) # # ¾åµ­¤Î¥Æ¡¼¥Ö¥ë¤ËDEFENDANT¤Ç¹Ê¹þ¤ò¤«¤±¤¿·ë²Ì¡¢GUILT¤Ë°ì¤Ä¤Ç¤â0¤¬¤¢¤ë¾ì¹ç # 1¹Ô¤â¼èÆÀ¤»¤º¡¢Á´Éô1¤Î¾ì¹ç¤Ï¤½¤Î¤Þ¤Þ°ìÍ÷¤òÊÖ¤¹¾ì¹ç¤É¤Î¤è¤¦¤ÊSQL¤ò½ñ¤±¤Ð # ¤è¤¤¤Ç¤·¤ç¤¦¤«¡©¤³¤Î¾ì¹ç¡¢HOGE¤Ç¹Ê¤ê¹þ¤à¤È0¹Ô¡¢FUGA¤Ê¤é3¹Ô¤È¸À¤¦¶ñ¹ç¤Ç¤¹¡£ # # DBMS¤ÏMySQL5.0.67¤Ç¤¹¡£ # # 'T_JUDGE¥Æ¡¼¥Ö¥ë'('HOGE',1,'FOO'). 'T_JUDGE¥Æ¡¼¥Ö¥ë'('HOGE',0,'BAR'). 'T_JUDGE¥Æ¡¼¥Ö¥ë'('HOGE',1,'BAZ'). 'T_JUDGE¥Æ¡¼¥Ö¥ë'('FUGA',1,'FOO'). 'T_JUDGE¥Æ¡¼¥Ö¥ë'('FUGA',1,'BAR'). 'T_JUDGE¥Æ¡¼¥Ö¥ë'('FUGA',1,'BAZ'). 'T_JUDGE¥Æ¡¼¥Ö¥ë¤ËDEFENDANT¤Ç¹Ê¹þ¤ò¤«¤±¤¿·ë²Ì¡¢GUILT¤Ë°ì¤Ä¤Ç¤â0¤¬¤¢¤ë¾ì¹ç1¹Ô¤â¼èÆÀ¤»¤º¡¢Á´Éô1¤Î¾ì¹ç¤Ï¤½¤Î¤Þ¤Þ°ìÍ÷¤òÊÖ¤¹'(_DEFENDANT,_GUILT,_JOROR) :- findsetof(_DEFENDANT,('T_JUDGE¥Æ¡¼¥Ö¥ë'(_DEFENDANT,_GUILT,_JOROR),\+(_GUILT=0)),L1), findsetof(_DEFENDANT,('T_JUDGE¥Æ¡¼¥Ö¥ë'(_DEFENDANT,_GUILT,_JOROR),_GUILT=0),L2), º¹½¸¹ç(L1,L2,L3), member(_DEFENDANT,L3), T_JUDGE¥Æ¡¼¥Ö¥ë(_DEFENDANT,_GUILT,_JOROR). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1252492296/922 # # Çä¾å¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¤¢¤Ã¤Æ¡¢¼ç¥Æ¡¼¥Ö¥ë¤Î¹àÌܤϡ¢Çä¾åÈֹ桢ÆÀ°ÕÀè̾¡¢ÆüÉÕ¡£ # ÌÀºÙ¥Æ¡¼¥Ö¥ë¤Î¹àÌܤϡ¢ÌÀºÙÈֹ桢Çä¾åÈֹ桢¾¦ÉÊ¡¢¸Ä¿ô¡£Çä¾åÈÖ¹æ¤Ç1Âп¤Ç¥ê¥ó¥¯¤·¤Æ¤¤¤Þ¤¹¡£ # ¾¦ÉÊ¡ÊÊ£¿ô¡Ë¤ÈÆüÉÕ¤ò»ØÄꤷ¤Æ¡¢ ¾¦ÉÊ̾¡¡¸Ä¿ô·×¡¡ÆÀ°ÕÀè·×¤Î°ìÍ÷¤ò½ÐÎϤ·¤¿¤¤¤Ç¤¹¡£ # ¤¿¤À¤·ÆÀ°ÕÀè̾¤ÏƱ̾¤ò1¤È¥«¥¦¥ó¥È¤·¤¿¤¤¤Î¤Ç¤¹¡£ # SELECT ÌÀºÙ.¾¦ÉÊ, Sum(ÌÀºÙ.¸Ä¿ô) AS ¸Ä¿ô·×, Count(¼ç.ÆÀ°ÕÀè) AS ÆÀ°ÕÀè·× # FROM ¼ç INNER JOIN ÌÀºÙ ON ¼ç.Çä¾åÈÖ¹æ = ÌÀºÙ.Çä¾åÈÖ¹æ # WHERE ¼ç.ÆüÉÕ Between '5/1/2010' And '5/4/2010' # GROUP BY ÌÀºÙ.¾¦ÉÊ # HAVING ÌÀºÙ.¾¦ÉÊ='¤¨¤ó¤Ô¤Ä' or ÌÀºÙ.¾¦ÉÊ='É®'; # ¤È¤¹¤ë¤È¡¢ÆÀ°ÕÀè·×¤¬Ê£¿ô¥«¥¦¥ó¥È¡ÊƱ̾¤Ï1¤È¤Ê¤é¤Ê¤¤¡Ë¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ # ¤É¤Î¤è¤¦¤Ë½ñ¤¤¤¿¤é¤è¤¤¤Î¤Ç¤·¤ç¤¦¤«¡£ # '¾¦ÉÊ¡ÊÊ£¿ô¡Ë¤ÈÆüÉÕ¤ò»ØÄꤷ¤Æ¡¢ ¾¦ÉÊ̾ ¸Ä¿ô·× ÆÀ°ÕÀè·×¤Î°ìÍ÷¤ò½ÐÎϤ¹¤ë'(_¾¦Éʤʤé¤Ó,_ÆüÉÕ²¼¸Â,_ÆüÉÕ¾å¸Â,X) :- findall([_¾¦ÉÊ,_¸Ä¿ô,_ÆÀ°ÕÀè̾],(¼ç(_Çä¾åÈÖ¹æ,_ÆÀ°ÕÀè̾,_ÆüÉÕ),ÌÀºÙ(_ÌÀºÙÈÖ¹æ,_Çä¾åÈÖ¹æ,_¾¦ÉÊ,_¸Ä¿ô),member(_¾¦ÉÊ,_¾¦Éʤʤé¤Ó),_ÆüÉÕ@>=_ÆüÉÕ²¼¸Â,_ÆüÉÕ@=<_ÆüÉÕ¾å¸Â),_ÁªÂò¤Ê¤é¤Ó), findsetof([_¾¦ÉÊ,_ÆÀ°ÕÀè̾],member([_¾¦ÉÊ,_¸Ä¿ô,_ÆÀ°ÕÀè̾],_ÁªÂò¤Ê¤é¤Ó),_¸°¤Ê¤é¤Ó), findall([_¾¦ÉÊ,_¸Ä¿ô·×,_ÆÀ°ÕÀè̾],(member([_¾¦ÉÊ,_ÆÀ°ÕÀè̾],_¸°¤Ê¤é¤Ó),findsum(_¸Ä¿ô,member([_¾¦ÉÊ,_¸Ä¿ô,_ÆÀ°ÕÀè̾],_ÁªÂò¤Ê¤é¤Ó),_¸Ä¿ô·×)),X). % °Ê²¼¤Î¥µ¥¤¥È¤Ï findsort(_½¸Ìó¹à,_½¸ÌóÂоݹà,P,_¼Í±Æ¹à) :- findsetof(_½¸Ìó¹à,P), append(_½¸ÌóÂоݹà,_¼Í±Æ¹à,L1), findall(L1,P,L2), sort(L2,L3), append(_½¸ÌóÂоݹà,_¼Í±Æ¹à,L), member(L,L3). findrsort(_½¸Ìó¹à,_½¸ÌóÂоݹà,P,_¼Í±Æ¹à) :- findsetof(_½¸Ìó¹à,P), append(_½¸ÌóÂоݹà,_¼Í±Æ¹à,L1), findall(L1,P,L2), sort(L2,L3), reverse(L3,L4), append(_½¸ÌóÂоݹà,_¼Í±Æ¹à,L), member(L,L4). findsort(_½¸ÌóÂоݹà,P,_¼Í±Æ¹à) :- append(_½¸ÌóÂоݹà,_¼Í±Æ¹à,L1), findall(L1,P,L2), sort(L2,L3), append(_½¸ÌóÂоݹà,_¼Í±Æ¹à,L), member(L,L3). findrsort(_½¸ÌóÂоݹà,P,_¼Í±Æ¹à) :- append(_½¸ÌóÂоݹà,_¼Í±Æ¹à,L1), findall(L1,P,L2), sort(L2,L3), reverse(L3,L4), append(_½¸ÌóÂоݹà,_¼Í±Æ¹à,L), member(L,L4). findsetof(A,B,L) :- findall(A,B,C), setof(A,member(A,C),L). findsetof(A,B) :- findall(A,B,C), setof(A,member(A,C),D), member(A,D). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1252492296/817 # # [¥Æ¡¼¥Ö¥ëA] # ID, AGE, GROUP # --- ---- ----- # 1 , 10, A # 2 , 20, A # 3 , 30, A # 4 , 20, B # 5 , 40, B # 6 , 60, B # 7 , 10, C # 8 , 30, C # 9 , 50, C # 10 , 70, C # # ¢¬¤Î¥Æ¡¼¥Ö¥ë¤«¤é¡¢ # ³ÆGROUPËè¤ËAGE¤Ç½ç°ÌÉÕ¤±¤·¤¿·ë²Ì¤ò¼èÆÀ¤·¤¿¤¤¤Ç¤¹¡£ # # <·ë²Ì> # # ID, AGE, GROUP, RANK # --- ---- ----- ----- # 1 , 10, A 1 # 2 , 20, A 2 # 3 , 30, A 3 # 4 , 20, B 1 # 5 , 40, B 2 # 6 , 60, B 3 # 7 , 10, C 1 # 8 , 30, C 2 # 9 , 50, C 3 # 10 , 70, C 4 # # # GROUP BY¤ò»È¤Ã¤Æ¤ß¤¿¤Î¤Ç¤¹¤¬¡¢ # ¤É¤¦¤â¸«Åö°ã¤¤¤ÎSQL¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¡£¡£ # # ¤¹¤¤¤Þ¤»¤ó¤¬¡¢¤É¤Î¤è¤¦¤ÊSQL¤ò½ñ¤±¤Ð¤è¤¤¤«¤´¶µ¼¨¤¯¤À¤µ¤¤¡£ # '³ÆGROUPËè¤ËAGE¤Ç½ç°ÌÉÕ¤±¤·¤¿·ë²Ì¤ò¼èÆÀ'(X) :- findsetof(Group,'¥Æ¡¼¥Ö¥ëA'(_,_,Group),L1), '³ÆGROUPËè¤ËAGE¤Ç½ç°ÌÉÕ¤±¤·¤¿·ë²Ì¤ò¼èÆÀ'(1,L1,X). '³ÆGROUPËè¤ËAGE¤Ç½ç°ÌÉÕ¤±¤·¤¿·ë²Ì¤ò¼èÆÀ'(_,[],[]) :- !. '³ÆGROUPËè¤ËAGE¤Ç½ç°ÌÉÕ¤±¤·¤¿·ë²Ì¤ò¼èÆÀ'(M,[Group|R1],X) :- findall([Age,Group],'¥Æ¡¼¥Ö¥ëA'(_,Age,Group),L2), À°Îó(L2,L3), ½ç½ø¤Å¤±(M,M2,1,L3,L4), '³ÆGROUPËè¤ËAGE¤Ç½ç°ÌÉÕ¤±¤·¤¿·ë²Ì¤ò¼èÆÀ'(M2,R1,Y), append(L4,Y,X). ½ç½ø¤Å¤±(M,M,_,[],[]) :- !. ½ç½ø¤Å¤±(M,MX,N,[[Age,Group]|R1],[M,Age,Group,N|R2]) :- N2 is N + 1, M2 is M + 1, ½ç½ø¤Å¤±(M2,MX,N2,R1,R2). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1252492296/789 # # [TABLE1] # # key1 key2 data # ------------------------------------ # AAA 01 zzz # AAA 02 yyy # BBB 01 xxx # BBB 03 www # CCC 02 vvv # DDD 03 uuu # # # # [TABLE2] # key1 data # ------------------------------------ # MMM 01&02 # NNN 01only # OOO 02only # # # ¤³¤Î¤è¤¦¤Ê¥Æ¡¼¥Ö¥ë¤«¤é¡¢°Ê²¼¤Î¥Ç¡¼¥¿¤òÃê½Ð¤·¤¿¤¤¤Ç¤¹¡£ # # # # key1 key2 data1 data2 # --------------------------------------------- # AAA 01 zzz 01&02 # BBB 01 xxx 01only # CCC 02 vvv 02only # # # TABLE1¤ÎKEY¤Ïkey1¤Èkey2¤Ç¤¹¡£ # ¤³¤ÎTABLE1¤«¤é¡¢³Ækey1¤ËÂФ·¤Æ°ì°Õ¤Ë¥Ç¡¼¥¿¤òÃê½Ð¤·¤Þ¤¹¡£ # Ãê½Ð¤Ïkey2¤ÎÃͤ¬01¤È02¤Î¤â¤Î¤Î¤ß¤òÂоݤȤ·¡¢ # 01¤¬¤¢¤ì¤Ð01¤Î¥Ç¡¼¥¿¤ò¡¢¤Ê¤±¤ì¤Ð02¤Î¥Ç¡¼¥¿¤ò°ú¤ÃÄ¥¤Ã¤Æ¤­¤Þ¤¹¡Êdata1¡Ë¡£ # # ¤µ¤é¤Ë¡¢³Ækey1¤Ë¤ª¤±¤ëkey2¤Î¾õ¶·¡©¤òdata2¤È¤·¤ÆÉղä·¤¿¤¤¤Ç¤¹¡£ # ¤³¤³¤Ç¤ÏTABLE2¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¤¬¡¢ # ¾ò·ïʸ¤Çñ¤Ëʸ»úÎó¤òÀßÄꤹ¤ë¤Î¤Ç¤â¹½¤¤¤Þ¤»¤ó¡£ # # SQLServer2000¤ò»ÈÍѤ·¤Þ¤¹¡£ # ¤É¤Î¤è¤¦¤ÊSQL¤ò½ñ¤±¤Ð¤è¤¤¤Ç¤·¤ç¤¦¤«¡© # ¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£ # # 'TABLE1¤«¤é¡¢³Ækey1¤ËÂФ·¤Ækey2¤ÎÃͤ¬01¤È02¤Î¤â¤Î¤Î¤ß¤òÂоݤȤ·¡¢01¤¬¤¢¤ì¤Ð01¤Î¥Ç¡¼¥¿¤ò¡¢¤Ê¤±¤ì¤Ð02¤Î¥Ç¡¼¥¿¤òÃê½Ð¤·³Ækey1¤Ë¤ª¤±¤ëkey2¤Î¾õ¶·¤òdata2¤È¤·¤ÆÉղä·¤ÆTABLE2¤ËÄɲ䷤ƽÐÎÏ' :- findsetof(_key1,('TATLE1'(_key1,_key2,_data),key2¤ÎÂоݤÏ01¤«02¤Î¤ß(_key2)),L1), ¸«½Ð¤·, member(_key1,L1), '01¤¬¤¢¤ì¤Ð01¤Î¥Ç¡¼¥¿¤ò¡¢¤Ê¤±¤ì¤Ð02¤Î¥Ç¡¼¥¿¤òÃê½Ð¤·³Ækey1¤Ë¤ª¤±¤ëkey2¤Î¾õ¶·¤òdata2¤È¤·¤ÆÉÕ²Ã'(_key1,L2), write_formatted('%t %t %t %t\n',L2), fail. 'TABLE1¤«¤é¡¢³Ækey1¤ËÂФ·¤Ækey2¤ÎÃͤ¬01¤È02¤Î¤â¤Î¤Î¤ß¤òÂоݤȤ·¡¢01¤¬¤¢¤ì¤Ð01¤Î¥Ç¡¼¥¿¤ò¡¢¤Ê¤±¤ì¤Ð02¤Î¥Ç¡¼¥¿¤òÃê½Ð¤·³Ækey1¤Ë¤ª¤±¤ëkey2¤Î¾õ¶·¤òdata2¤È¤·¤ÆÉղä·¤ÆTABLE2¤ËÄɲ䷤ƽÐÎÏ'. key2¤ÎÂоݤÏ01¤«02¤Î¤ß('01') :- !. key2¤ÎÂоݤÏ01¤«02¤Î¤ß('02') :- !. '01¤¬¤¢¤ì¤Ð01¤Î¥Ç¡¼¥¿¤ò¡¢¤Ê¤±¤ì¤Ð02¤Î¥Ç¡¼¥¿¤òÃê½Ð¤·³Ækey1¤Ë¤ª¤±¤ëkey2¤Î¾õ¶·¤òdata2¤È¤·¤ÆÉÕ²Ã'(_key1,X) :- findall([_key1,_key2,_data],'01¤¬¤¢¤ì¤Ð01¤Î¥Ç¡¼¥¿¤ò¡¢¤Ê¤±¤ì¤Ð02¤Î¥Ç¡¼¥¿¤òÃê½Ð¤·'(_key1,_key2,_data),L), ³Ækey1¤Ë¤ª¤±¤ëkey2¤Î¾õ¶·(L,X), X = [_,_,_,TABLE2data], assertz('TABLE2'(_key1,TABLE2data)),!. '01¤¬¤¢¤ì¤Ð01¤Î¥Ç¡¼¥¿¤ò¡¢¤Ê¤±¤ì¤Ð02¤Î¥Ç¡¼¥¿¤òÃê½Ð¤·'(_key1,'01',_data) :- 'TABLE1'(_key1,'01',_data). '01¤¬¤¢¤ì¤Ð01¤Î¥Ç¡¼¥¿¤ò¡¢¤Ê¤±¤ì¤Ð02¤Î¥Ç¡¼¥¿¤òÃê½Ð¤·'(_key1,'02',_data) :- 'TABLE1'(_key1,'02',_data). ³Ækey1¤Ë¤ª¤±¤ëkey2¤Î¾õ¶·([[_key1,'01',_data]],[_key1,'01',_data,'01only']) :- !. ³Ækey1¤Ë¤ª¤±¤ëkey2¤Î¾õ¶·([[_key1,'02',_data]],[_key1,'02',_data,'02only']) :- !. ³Ækey1¤Ë¤ª¤±¤ëkey2¤Î¾õ¶·([[_key1,'01',_data],[_key1,'02',_]],[_key1,'01',_data,'01&02']) :- !. ³Ækey1¤Ë¤ª¤±¤ëkey2¤Î¾õ¶·([[_key1,'02',_],[_key1,'01',_data]],[_key1,'01',_data,'01&02']) :- !. ¸«½Ð¤· :- write('key1 key2 data1 data2 \n'-----------------------------------\n'). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1252492296/751 # # # ǯ·îÆü¤È¶â³Û¤ò»ý¤Ã¤¿¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¤Þ¤¹¡£Á°Ç¯ÅÙ¹ç·×¤Èº£Ç¯ÅÙ¹ç·×¤ò½Ð¤·¤¿¤¤¤Î¤Ç¤¹¤¬¡¢ # # ǯ·îÆü ¶â³Û # 20080402 200 # 20080404 200 # 20090401 100 # 20090401 500 # 20090404 300 # # ¤È¤¢¤Ã¤¿¾ì¹ç¡¢¢­¤Ë¤·¤¿¤¤¤Ç¤¹ # # ǯ·îÆü º£Ç¯ÅÙ¹ç·× Á°Ç¯ÅÙ¹ç·× # 20090401 600 0 # 20090402 0 200 # 20090404 300 200 # # ξǯÅÙ¶â³Û¤¬Ìµ¤¤¾ì¹ç¤Ïɽ¼¨Ìµ¤·¤Ç¡¢Ç¯·îÆü¤Ï8·å¤Î¿ôÃÍ·¿¤Ç¤¹¡£ # ¤¦¤ë¤¦Ç¯¤Ï¹Íθ¤·¤Ê¤¯¤Æ¹½¤¤¤Þ¤»¤ó¡£ ǯ·îÆü¤È¶â³Û¤ò»ý¤Ã¤¿¥Æ¡¼¥Ö¥ë¤¬¤¢¤ê¤Þ¤¹¡£Á°Ç¯ÅÙ¹ç·×¤Èº£Ç¯ÅÙ¹ç·×¤ò½Ð¤·¤¿¤¤¤Î¤Ç¤¹¤¬ :- ½é¤á¤Ë½ÅÊ£¤·¤Ê¤¤Ç¯·îÆü¤Ê¤é¤Ó¤ò¼è¤ê½Ð¤·¤Þ¤¹(_½ÅÊ£¤·¤Ê¤¤Ç¯·îÆü¤Ê¤é¤Ó), ¸«½Ð¤·¤Ç¤¹, ½ÅÊ£¤·¤Ê¤¤Ç¯·îÆü¤Ê¤é¤Ó¤«¤é½ç¤Ëǯ·îÆü¤ò¼è¤ê½Ð¤·º£Ç¯ÅÙ¹ç·×¤ÈÁ°Ç¯ÅÙ¹ç·×¤ò·×»»¤·¤ÆÉ½¼¨¤·¤Þ¤¹(_½ÅÊ£¤·¤Ê¤¤Ç¯·îÆü¤Ê¤é¤Ó). ½é¤á¤Ë½ÅÊ£¤·¤Ê¤¤Ç¯·îÆü¤Ê¤é¤Ó¤ò¼è¤ê½Ð¤·¤Þ¤¹(_½ÅÊ£¤·¤Ê¤¤Ç¯·îÆü¤Ê¤é¤Ó) :- findsetof(_ǯ·îÆü,¥Æ¡¼¥Ö¥ë(_ǯ·îÆü,_),_½ÅÊ£¤·¤Ê¤¤Ç¯·îÆü¤Ê¤é¤Ó). ¸«½Ð¤·¤Ç¤¹ :- write_formatted('%8s %10s %10s\n',[ǯ·îÆü,º£Ç¯ÅÙ¹ç·×,Á°Ç¯ÅÙ¹ç·×]). ½ÅÊ£¤·¤Ê¤¤Ç¯·îÆü¤Ê¤é¤Ó¤«¤é½ç¤Ëǯ·îÆü¤ò¼è¤ê½Ð¤·º£Ç¯ÅÙ¹ç·×¤ÈÁ°Ç¯ÅÙ¹ç·×¤ò·×»»¤·¤ÆÉ½¼¨¤·¤Þ¤¹([]) :- !. ½ÅÊ£¤·¤Ê¤¤Ç¯·îÆü¤Ê¤é¤Ó¤«¤é½ç¤Ëǯ·îÆü¤ò¼è¤ê½Ð¤·º£Ç¯ÅÙ¹ç·×¤ÈÁ°Ç¯ÅÙ¹ç·×¤ò·×»»¤·¤ÆÉ½¼¨¤·¤Þ¤¹([_ǯ·îÆü|R]) :- _Á°Ç¯Æ±Æü is _ǯ·îÆü - 10000, ¤¢¤ëǯ·îÆü¤Î¶â³Û¹ç·×(_ǯ·îÆü,_º£Ç¯ÅÙ¹ç·×), ¤½¤ÎÁ°Ç¯Æ±Æü¤Î¶â³Û¹ç·×(_Á°Ç¯Æ±Æü,_Á°Ç¯ÅÙ¹ç·×), ǯ·îÆü¤Èº£Ç¯ÅÙ¹ç·×¤ÈÁ°Ç¯ÅÙ¹ç·×¤òɽ¼¨¤·¤Þ¤¹(_ǯ·îÆü,_º£Ç¯ÅÙ¹ç·×,_Á°Ç¯ÅÙ¹ç·×), ½ÅÊ£¤·¤Ê¤¤Ç¯·îÆü¤Ê¤é¤Ó¤«¤é½ç¤Ëǯ·îÆü¤ò¼è¤ê½Ð¤·º£Ç¯ÅÙ¹ç·×¤ÈÁ°Ç¯ÅÙ¹ç·×¤ò·×»»¤·¤ÆÉ½¼¨¤·¤Þ¤¹(R). ¤¢¤ëǯ·îÆü¤Î¶â³Û¹ç·×(_ǯ·îÆü,_¶â³Û¹ç·×) :- findsum(_¶â³Û,(¥Æ¡¼¥Ö¥ë(_ǯ·îÆü,_¶â³Û),_¶â³Û¹ç·×). ¤½¤ÎÁ°Ç¯Æ±Æü¤Î¶â³Û¹ç·×(_Á°Ç¯Æ±Æü,_Á°Ç¯Æ±Æü¶â³Û¹ç·×) :- findsum(_Á°Ç¯Æ±Æü¶â³Û,(¥Æ¡¼¥Ö¥ë(_Á°Ç¯Æ±Æü,_Á°Ç¯Æ±Æü¶â³Û),_Á°Ç¯Æ±Æü¶â³Û¹ç·×). ǯ·îÆü¤Èº£Ç¯ÅÙ¹ç·×¤ÈÁ°Ç¯ÅÙ¹ç·×¤òɽ¼¨¤·¤Þ¤¹(_ǯ·îÆü,_º£Ç¯ÅÙ¹ç·×,_Á°Ç¯ÅÙ¹ç·×) :- write_formatted('%t %10.0f %10.0f\n',[_ǯ·îÆü,_º£Ç¯ÅÙ¹ç·×,_Á°Ç¯ÅÙ¹ç·×]). % °Ê²¼¤Î¥µ¥¤¥È¤Ï # ½Ðŵ:: http://pc11.2ch.net/test/read.cgi/db/1252492296/713 # # # A¡¡B¡¡C # -¡¡-¡¡- # 1¡¡3¡¡a # 1¡¡5¡¡b # 2¡¡8¡¡c # 2¡¡4¡¡d # 2¡¡6¡¡e # 3¡¡3¡¡f # 3¡¡1¡¡g # # ¾åµ­¤Î¤è¤¦¤ÊSAMPLE¥Æ¡¼¥Ö¥ë¤¬¤¢¤ë¤È¤­¡¢ # A¤´¤È¤ËB¤¬ºÇÂç¤È¤Ê¤ë¥ì¥³¡¼¥É¤ÎC¤òÆÀ¤¿¤¤¡¢ # ¤Ä¤Þ¤ê¡¢Ãê½Ð·ë²Ì¤ò²¼µ­¤Î¤è¤¦¤Ë¤·¤¿¤¤¤È¹Í¤¨¤Æ¤¤¤Þ¤¹¡£ # # A¡¡C # -¡¡- # 1¡¡b # 2¡¡c # 3¡¡f 'SAMPLE'('1','3','a'). 'SAMPLE'('1','5','b'). 'SAMPLE'('2','8','c'). 'SAMPLE'('2','4','d'). 'SAMPLE'('2','6','e'). 'SAMPLE'('3','3','f'). 'SAMPLE'('3','1','g'). 'A¤´¤È¤ËB¤¬ºÇÂç¤È¤Ê¤ë¥ì¥³¡¼¥É¤ÎC¤òÆÀ¤ë'(X,Y) :- findsetof(A,'SAMPLE'(A,_,_),L), member(A,L), findmax([B,A,C],'SAMPLE'(A,B,C),[_,X,Y]). findsetof(A,B,C) :- findall(A,B,L), setof(A,member(A,L),C). findmax(A,P,X) :- findall(A,P,L), sort(L,L2), last(L2,X). % °Ê²¼¤Î¥µ¥¤¥È¤Ï % *** user: findsetof / 3 *** findsetof(A,B,L) :- findall(A,B,C), setof(A,member(A,C),L) . % *** user: findsetof / 3 *** findsetof(A,B,L) :- B =.. [_|L1], setof(A,L1 ^ B,L). % *** user: findsetof / 3 *** findsetof(A,B,L) :- term_variables(B,VL), setof(A,VL ^ B,L)