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

запрос в Support и в фейсе выдает разные результаты

Добавлено: 08 фев 2006, 17:33
Johny
В саппорте пишу:

select * from spobjacc
where
((objacct.nrec==spobjacc.cobjacct)) and
281474976712748=ObjAcct.cowner and
0=spobjacc.cobject;

Получаю как и требуется 3 строки (одну на первый Objacct и 2 на второй Objacct)

Пишу фейс:

interface copy;

create view as
select * from spobjacc
where
((objacct.nrec==spobjacc.cobjacct)) and
281474976712748=ObjAcct.cowner and
0=spobjacc.cobject;

browse spBr;
fields
nrec;
end;

end.

Получаю 2 строки а не три. То есть как бы вторая строка, привязанная ко второму Objacct обрубается.
Уже запарился варианты запроса перестраивать. Как будто какой-то фильтр левый встает.
В чем причина может быть?

Добавлено: 08 фев 2006, 18:45
WiRuc

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

create view as 
select * from ObjAcct,spobjacc
where 
((
  comp(281474976712748) == ObjAcct.cowner and
  objacct.nrec==spobjacc.cobjacct and
  comp(0) == spobjacc.cobject (noindex)
));

Добавлено: 08 фев 2006, 18:50
ecasoft
Тогда уж лучше noindex не использовать.


create view as
select * from ObjAcct,spobjacc
where
((
comp(281474976712748) == ObjAcct.cowner and
objacct.nrec==spobjacc.cobjacct and
( comp(0) = spobjacc.cobject)
));

Добавлено: 08 фев 2006, 19:28
Johny
Вот почти такой вариант прокатил:

create view as
select * from spobjacc
where
281474976712748=ObjAcct.cowner and
objacct.nrec=spobjacc.cobjacct and
0=spobjacc.cobject;

остальные ковырял но безуспешно. Какая-то странная таблица.
В ней правда хитрость есть, она сама на себя ссылается, может из за этого какие-то баги

Добавлено: 08 фев 2006, 21:21
ecasoft
Честно говоря не верю, что этот проходит, а два предыдущих не проходят. Такого просто не может быть. :) И в запросе указанном нет ссылок самих на себя...да и если бы и были то тоже никаких проблем.

Добавлено: 09 фев 2006, 10:35
Johny
И правильно делаешь что не веришь. Если быть совсем точным, то проходит вот этот:

create view as
select * from spobjacc
where
objacct.nrec=spobjacc.cobjacct and
0=spobjacc.cobject;

А вообще может ум за разум у меня зашел, но я потерял часов 8 пока вот до этого дошел (прогу переделать пришлось хорошо, по сравнению с начальным вариантом) Обидно, что это последний штрих уже был. :shock: