Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Использование EXISTS или IN (число прочтений - 1357 )
vova64
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 14
Зарегистрирован: 29. Июля 2008
Использование EXISTS или IN
05. Августа 2008 :: 04:40
Печать  
Писал запрос для получения списка документов не внесенных в табличную часть другогих документов сначала пытался через EXISTS потом через IN что то неработало потом стал искать в чем причина на текущий момент вижу что разница в разных значениях колонок документов в запросе и подзапросе
в основном запросе берем
   Жур.IDDoc as [Док $Документ],
   Жур.IDDocDef as Док_вид,
а в подзапросе берем реквизит под названием "Документ" табличной части документа (тип значения документ неопредленного вида)
   SELECT
        $ДокМЛСтроки.Документ
   FROM
        $ДокументСтроки.МаршрутныйЛист as ДокМЛСтроки
посмотрел по отдельности возвращаемые значения и увидел разницу
первый запрос возвращает

IDDoc
  IYHHALA
  IYHIALA

второй запрос возвращает

sp4923
2A4  IYHHALA
2HR  IYHIALA

подскажите пожалуйста как нужно привести эти колонки чтобы можно было использовать EXISTS или IN

полный текст запроса1
ТекстЗапроса = "
|SELECT
|   Жур.IDDoc as [Док $Документ],
|   Жур.IDDocDef as Док_вид
|FROM
| _1SJourn as Жур
|LEFT JOIN
| $Документ.Расходная as ДокР ON ДокР.IDDoc = Жур.IDDoc
|LEFT JOIN
| $Документ.ПриходныйОрдерТБ as ДокП ON ДокП.IDDoc = Жур.IDDoc
|";

полный текст запроса2
ТекстЗапроса = "
|      SELECT
|            $ДокМЛСтроки.Документ
|      FROM
|            $ДокументСтроки.МаршрутныйЛист as ДокМЛСтроки
|      INNER JOIN
|            $Документ.МаршрутныйЛист as ДокМЛ ON ДокМЛ.IDDoc = ДокМЛСтроки.IDDoc AND ДокМЛ.$ОбщийРеквизит.Подразделение = :ВыбПодразделение
|      INNER JOIN
|            _1SJourn as ЖурДоп ON ЖурДоп.IDDoc = ДокМЛСтроки.IDDoc AND
|                          ЖурДоп.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND
|                          ЖурДоп.IsMark = 0
|";
  
Наверх
 
IP записан
 
vova64
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 14
Зарегистрирован: 29. Июля 2008
Re: Использование EXISTS или IN
Ответ #1 - 05. Августа 2008 :: 05:40
Печать  
преобразовал в подзапросе
$ДокМЛСтроки.Документ
в
RIGHT($ДокМЛСтроки.Документ,9)
вроде работает но производительность сильно упала
Подскажите пожалуйста есть более эфективный путь как вытащить ссыклу документа из реквизита типа документ?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать