trad писал(а) 24. Апреля 2008 :: 09:54:раз уж индексы все равно никакие не используются, то универсально будет так
WHERE right(СФ.SP11069,9) =:Док
где Док = D
имей ввиду что твой запрос выполняет фулскан таблицы DH11012
Спасибо, учту.
Когда говорил про универсальность, имел в первую очередь именно формирование Док, Сейчас:
ДокВид=" 86"+тзф.ПолучитьЗначение(тзф.НомерСтроки,"D");
ТоварВид="B1 4C"+зф.SP283+" ";
ТекстЗапроса = "
|SELECT СФС.SP11009 Страна
| ,ГТД.DESCR ГТД
| ,Жур.DOCNO НомерДок
| ,CAST(LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДок
|FROM _1SJourn Жур
|INNER JOIN DH11012 AS СФ on СФ.IDDoc = Жур.IDDoc
|INNER JOIN DT11012 AS СФС ON СФ.IDDOC = СФС.IDDOC
|LEFT OUTER JOIN SC223 AS ГТД ON СФС.SP11010 = ГТД.ID
|WHERE (СФ.SP11069 = :Док)
|AND (СФС.SP10995 = :Товар)
|";
Запр.УстановитьТекстовыйПараметр("Док",ДокВид);
Запр.УстановитьТекстовыйПараметр("Товар",ТоварВид);
З=Запр.ВыполнитьИнструкцию(ТекстЗапроса);
ДокВид, ТоварВид формирую под конкретную базу, посмотрев как там это выглядит, почему " 86" и "B1 4C" даже не спрашивайте, взял как данность, к ним присоединяю iddocdef и ID соответственно