.create view t1 as select * from basefin, plpor, basedoc, groupsch
where ((word(2) == basefin.direct and
basefin.cplpor == plpor.nrec and
basefin.cbasedoc == basedoc.nrec and
plpor.cgroupsch == groupsch.nrec)) and
(basefin.tidkgal = 1 or basefin.tidkgal = 10) and
plpor.datvip >= dbegin and
plpor.datvip <= dkon and
groupsch.nrec = comp(gr_nrec);
Проблема в том, что работает он довольно долго, минуты 3-5 лопатит данные за 8 месяцев. Может подскажете, как его видоизменить, чтобы выборка шла быстрее.
.....
where ((word(2) == basefin.direct and
date(01,09,2005)<<=basefin.ddoc and
date(22,09,2005)>>=basefin.ddoc and
basefin.cplpor == plpor.nrec and
basefin.cbasedoc == basedoc.nrec
......
прикол в том, что basefin.ddoc - это дата оплаты документа, если платежка не оплачена, то поле пустое, а мне необходимо выбирать по дате выписки платежки
.....
where ((Root==plpor.tidkgal
and (plpor.tidkgal=1 or plpor.tidkgal=10)
and date(01,09,2005)<<=plpor.datvip and
date(22,09,2005)>>=plpor.datvip and
plpor.nrec==basefin.cplpor
and basefin.cbasedoc == basedoc.nrec
.......
))
and (остальные фильтры)
.create view t1
from basefin, plpor, basedoc, groupsch
where ((
dbegin <<= plpor.datvip and
dend >>= plpor.datvip and
comp(gr_nrec) == plpor.cgroupsch (noindex) and
plpor.nrec == basefin.cplpor and
(1 == basefin.tidkbase or 10 == basefin.tidkbase) and
word(2) == basefin.direct (noindex) and
basefin.cbasedoc == basedoc.nrec and
plpor.cgroupsch == groupsch.nrec ))