Страница 1 из 1

Помогите написать запрос!

Добавлено: 02 май 2007, 15:23
s2176
Добрый день!
Мне в ИНТЕРФЕЙСЕ надо обработать записи из таблицы PEREVOD за определенный месяц и год и по определенному виду оплаты, причем код вида оплаты известен только системный (в таблице perevod есть пользовательский код). Выбрать год и месяц проблемы не составляет, но вот как ограничить по СИСТЕМНОМУ коду, не знаю(((
Помогите советом, пожалуйста!

Добавлено: 02 май 2007, 16:00
Den
Группируй все как тебе надо по таблице perevod, далее лезешь в KLVIDOPL и смотришь там, какой пользовательский код соответствует системному и подменяешь его

klvidopl.VIDOPLP - пользовательский
klvidopl.VIDOPL - системный

Добавлено: 02 май 2007, 16:12
s2176
Поля я знаю...
Если бы это был отчет, я бы написала так:
select perevod.vidopl, perevod.sumper
from perevod
where((2007 == perevod.yeark and 2 == perevod.mes and
perevod.vidopl == Klvidopl.vidoplp
))
and 107=klvidopl.vidopl
;
а как сделать в интерфейсе?

Добавлено: 02 май 2007, 16:34
Den
Тебе нужно так вывести в интерфейсе ? :

vidopl1 mes1 summa
vidopl2 mes1 summa
.....
vidopln mesn summa

Добавлено: 02 май 2007, 16:37
s2176
да мне вообще-то нужно суммы налогов собрать по счету/субсчету из лицевого счета)). Вид оплаты один - 107(системный) за один месяц-год, выбранный в интерфейсе

Добавлено: 02 май 2007, 17:04
Den
Interface s2176 ;
create view
var
p1 : integer ;
p2,p3 : word ;
totsum : double ;

as select * from perevod
where ((
p1 == perevod.yearn
and p2 == perevod.mesn
and p3 == perevod.vidopl (noindex)
))
;

SCREEN screen1;
fields
p1 : [4],noprotect ;
p2 : [2],noprotect ;
p3 : [3],noprotect ;
buttons
cmYes ,Default,,'';
cmCancel ,,,'';

<<
год .@@@@
месяц .@@
вид оплаты сис .@@@


<.Сформировать.> <.Отмена.>
>>
end;


HandleEvent
CmYes :{
if getfirst klvidopl where ((p3==klvidopl.vidopl))=tsok
p3:=klvidopl.vidoplp;
else Message ('не найден такой сис. код оплаты');

_Loop perevod
{
totsum:=totsum+perevod.SUMPER;
}
Message('сумма по виду оплаты равна'+totsum);
CloseInterface(CmDone);
}
end;
end.

Добавлено: 03 май 2007, 08:19
s2176
Одним запросом никак?...
Впрочем, так, наверное, будет не медленнее.
Спасибо!