ПЛАТЕЖНЫЕ ДОКУМЕНТЫ

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

korvanakorvana
Местный житель
Сообщения: 429
Зарегистрирован: 24 сен 2008, 11:53

Сообщение korvanakorvana »

Код: Выделить всё

create view
var
date1, dat1, date2, dat2, date3, dat3:date;
XlRes: Boolean;
aFileName: String;
as
Select *
From 
basefin, 
basedoc, 
stepdoc, 
katsopr,
katmc katmc1,
tkvart,
t_katmc _katmc
, KatMC
, t_katmc
, t_bf
, t_do
, toplat
Where
((
    katmc.nrec==_katmc.nrec
//and 10051==basefin.tipdoc
//только по платежным поручениям
  and 1==basefin.direct
  and 2==basefin.tidkgal(noindex)

//and '2909'==basefin.nodoc(noindex)

and dat1<<=basefin.ddoc
and dat2>>=basefin.ddoc(noindex)
and basefin.cbasedoc==basedoc.nrec

and word(201)==basedoc.viddoc(noindex)

and dat3<<=basedoc.ddoc(noindex)

and basedoc.nrec==stepdoc.cbasedoc
and stepdoc.nrec==katsopr.cstepdoc
and katsopr.cstepdoc == basefin.cstepdoc 
and katsopr.nrec == spsopr.csopr
and 1 == spsopr.prmc
and spsopr.cmcusl == katmc1.nrec
));
Этот запрос не работает(((...

ошибка Изображение
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

может вы уже научитесь заходить в саппорте в модуль SQL искать там таблицу и по таблице смотреть возможные индексы?
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

and katsopr.cstepdoc == basefin.cstepdoc это что?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

это ссылка на ахронизм.
basedoc ( ДО) не ссылается напрямую в накладной
katsopr.cstepdoc == stepdoc.nrec
and stepdoc.cbasedoc == basedoc.nrec
korvanakorvana
Местный житель
Сообщения: 429
Зарегистрирован: 24 сен 2008, 11:53

Сообщение korvanakorvana »

а я там все это дело смотрю... только не понимаю некоторые привязки...
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

угу давным давно в качестве договоров подразумевалось использовать ДО, соотв. к ним сделали этапы(stepdoc), но в жизнь это не пошло, а транзит остался (к тому же там часть полей до сих пор используется).
да строка
and katsopr.cstepdoc == basefin.cstepdoc в вашем случае лишняя
вы приоритеты ставте то, домысливать за вас никто не будет
главная у вас basefin -к ней basedoc - katsopr
вы же попытались katsopr подчинили basefin и зациклили запрос. Можно было бы без basedoc обойтись для скорости- тока таблы в этом условии местами то нужно поменять - дочерние таблы в индексных условиях всегда справа, условия на них слева
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Сообщение Masygreen »

смотрите ошибку - если не можете найти связку по ключам,или оптимизировать запрос ставите (noindex) где всплыла ошибка (ошибка говорит что по вашим условиям индекса не найдено) .. для вашего принскрина
проставляете справа от связок где присутствует basefin с полями direct,ddoc,cstepdoc
Время ведет!
korvanakorvana
Местный житель
Сообщения: 429
Зарегистрирован: 24 сен 2008, 11:53

Сообщение korvanakorvana »

еще один глупейший вопросик) ....

Как сделать условие чтоб basefin.tidkgal(noindex) была = и 1 или 2??
:?
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Никогда не пробовали почитать доку по программированию на vip ?
Там в разделе "Работа с БД" описана "Конструкция where"...
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

where (
........
........
and
( basefin.tidkgal=1 OR basefin.tidkgal=2)
..........
..........
));
Ответить