0
botman4
05.01.17
✎
05:52
|
Есть документ "Заявка", в его табЧ добавляются различные документы, так же в Документе заявка есть ДатаОп ( не ДатаДок )
Хочется найти, использовался ли определенный документ в заявках в интервале дат ДатаОп.
Запрос отрабатывается без ошибок, но условия в нем не срабатывают, тупо выбираются все строки....
подскажите пож, где засада? спасибо.
Текстзапроса = "
|Select Заявка.IDDOC as [Заявка $Документ.Заявка], ДокументОснование as [Строка $Документ], Заявка.ДатаОп as [Дата $Дата] from
|ДокументСтроки.Заявка as Строки
|INNER JOIN Документ.Заявка as Заявка ON Заявка.IDDOC = Строки.IDDOC;
|WHERE Заявка.ДатаОп BETWEEN :ДатаНач AND :ДатаКон
|And ДокументОснование = :НужныйДок
|
|";
ПрЗапр = СоздатьОбъект("ПрямойЗапрос");
ПрЗапр.УстановитьТекстовыйПараметр("ДатаНач", ТекущаяДата()-30);
ПрЗапр.УстановитьТекстовыйПараметр("ДатаКон", ТекущаяДата());
ПрЗапр.УстановитьТекстовыйПараметр("НужныйДок",Док);
|
|
1
Djelf
гуру
05.01.17
✎
15:25
|
Что-то с парсером ПрямогоЗапроса, насколько помню в нем надо писать не
Select Заявка.IDDOC as [Заявка $Документ.Заявка]
а
Select $Заявка.IDDOC as [Заявка $Документ.Заявка]
Какой преобразованный текст запроса выводится при РежимОтладки=1?
И вообще лучше выбирать сначала Заявки, а потом к ним left join Строки т.к. sqlite может не понять что так будет быстрее и сначала будет просматривать все Строки без учета ограничения по дате.
И вот еще что "добавляются различные документы" значит ДокументОснование id13, а ты подставляешь id9. Если бы фильтр работал, запрос вообще ничего бы не выводил.
|
|