бухгалтерскими проводками(Jurnal). Имеется ХП которая с начала месяца по
текуший день отбирает проводки, суммирует и впихивает в сводную таблицу.
Последнее время кличество проводок растет немеренными темпами и к концу
месяца все это дело считается 4 часа (слишком долго).
Код: Выделить всё
CREATE PROCEDURE UPLACHENO3 (
MONZ1 DATE
)
AS
DECLARE VARIABLE PAB1 VARCHAR(6) CHARACTER SET WIN1251;
begin
/* Procedure Text */
for select distinct(activ1.paba) from activ1
where (activ1.tip_sch1 = 'T2' or activ1.tip_sch1 = 'L2' or activ1.tip_sch1
= 'L0')
into :pab1
do
begin
update activ1
set activ1.uplach = (Select sum( "jurnal"."rub") from "jurnal"
where
("jurnal"."date_op" >= :monz1)
and("jurnal"."deb13" like '____'||:pab1||'%')
and (("jurnal"."kred" like '91604%') or
("jurnal"."kred" like '70101%'))
and (("jurnal"."deb" like '99999%') or
("jurnal"."deb" like '40817%') or ("jurnal"."deb" like '40802%') or
("jurnal"."deb" like '40702%'))
)
where activ1.paba = :pab1 and (activ1.tip_sch1 = 'T2' or activ1.tip_sch1 =
'L2' or activ1.tip_sch1 = 'L0') ;
end
suspend;
end
текушего дня, но к примеру если по данному человеку в текуший день проводок
небыло то число + null = null т.е. итоговый результат неверен.
Вот как бы проверить выражение (Select sum( "jurnal"."rub") from "jurnal"
where ........ ) на полученный результат и если = null оставить предыдушее
значение, если != null то суммировать и обновить.
Пробывал выражение (Select sum( "jurnal"."rub") from "jurnal" where
........ ) в отдельную процедуру(sumsj) выделить а потом вызывать её :
if sumsj('01.08.05', человек_из_сводной_таблицы(pab1) ) != null then .... не
получилось, ругается что мол процедура sumsj не определена. Хотя отдельно
sumsj работает на ура...
Вобшем подскажите глупому...