| Новости | 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 "в две строчки" :) и в десять :))