Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
sergei v.2 12.02.2006 11:43
Используются таблицы:@USE /classes/sklad_zakaz.p @main[] ^connect[$connect_string]{ ^test1[] } ^rusage[ex1] @test1[] #$tab_t[^table::sql{select id from tovar where id=83}] $tabX[^get_all[$tab_t]] записей: ^tabX.count[] <table border=1> <tr valign=top> <td>ID товара</td> <td>ЗАКУПЛЕНО ВСЕГО</td> <td>ПРОДАНО ВСЕГО</td> <td>В РЕЗЕРВЕ</td> <td>НА ВЫЕЗДЕ</td> <td>Свободный отстаток</td> <td>ЗАКАЗАНО ВСЕГО</td> <td>ТРЕБУЕТСЯ ЗАРЕЗЕРВИРОВАТЬ</td> </tr> ^tabX.menu{ <tr^if($tabX.countS<0){ bgcolor=#00ffff}> <td>$tabX.id</td> <td>$tabX.countK</td> <td>$tabX.countF</td> <td>$tabX.countR</td> <td>$tabX.countV</td> <td>$tabX.countS</td> <td>$tabX.countZ</td> <td>$tabX.countT</td> </tr> } </table>/classes/sklad_zakaz.p
@rusage[comment][v;now;prefix;message;line;usec] $v[$status:rusage] $now[^date::now[]] $usec(^v.tv_usec.double[]) $prefix[[^now.sql-string[].^usec.format[%06.0f]] $env:REMOTE_ADDR: $comment] $message[$v.utime $v.stime $request:uri] $line[$prefix $message ^#0A] ^line.save[append;/rusage.log] $result[] ############################### @get_zakupleno[tab] $result[^table::sql{ SELECT idtovar as id, sum(count_tovar) as countK FROM sklad_sostav_zakaz WHERE idzakaz in (select id from sklad_zakazy where zakaz_status = 2) ^if(def $tab){ and idtovar in (^tab.menu{$tab.id}[,])} GROUP by idtovar }] ############################### @get_all[tab][tab_zakupleno;tab_prodano] $tab_tovar[^table::sql{SELECT id FROM tovar WHERE type_tovar=0 ^if(def $tab){and id in (^tab.menu{$tab.id}[,])} }] $tab_zakupleno[^get_zakupleno[$tab]] $tab_zakazano[^table::sql{ SELECT idtovar as id, sum(count_tovar) as countZ, sum(count_tovar_plus) as countR, sum(count_tovar_vyezd) as countV, sum(count_tovar_finish) as countF, sum(count_tovar)-(sum(count_tovar_plus)+ sum(count_tovar_vyezd) + sum(count_tovar_finish)) as countT FROM sostav_zakaz WHERE count_tovar>0 ^if(def $tab){ and idtovar in (^tab.menu{$tab.id}[,])} GROUP by idtovar }] $hash_zakupleno[^tab_zakupleno.hash[id]] $hash_zakazano[^tab_zakazano.hash[id]] $tab_res[^table::create{id countK countZ countR countV countF countT countS}] ^tab_tovar.menu{ $K[$hash_zakupleno.[$tab_tovar.id].countK] $Z[$hash_zakazano.[$tab_tovar.id].countZ] ^if($Z){ $R[$hash_zakazano.[$tab_tovar.id].countR] $V[$hash_zakazano.[$tab_tovar.id].countV] $F[$hash_zakazano.[$tab_tovar.id].countF] $T[$hash_zakazano.[$tab_tovar.id].countT] $S(^K.int(0)-($F+$R+$V)) ^tab_res.append{$tab_tovar.id ^K.int(0) $Z $R $V $F $T $S} }{ ^tab_res.append{$tab_tovar.id ^K.int(0) 0 0 0 0 0 ^K.int(0)} } } $result[$tab_res]Если честно, то я пока не сообразил как можно сделать это же на SQL "в две строчки" :) и в десять :))