Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Объединение двух запросов (число прочтений - 1214 )
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Объединение двух запросов
23. Июня 2009 :: 10:31
Печать  
Как к запросу
ТекстЗапроса="
     |SELECT ОстаткиТоваровОстатки.Товар [Товар $Справочник.Номенклатура]
     |      , ОстаткиТоваровОстатки.ОстатокТовараОстаток КолВо
     |FROM $РегистрОстатки.ОстаткиТоваров(:КонДата~,, (Фирма = :Фирма) AND (Склад = :Склад),      Товар,) AS ОстаткиТоваровОстатки";
присоединить запрос
ТекстЗапроса="
           |SELECT TOP 1
           |        $ПриходнаяНакладнаяСтроки.Товар Товар
           |      , ПриходнаяНакладная.IDDOC Докум
           |      , (NULLIF($ПриходнаяНакладнаяСтроки.Цена, 0) ЦенаЗакупки
           |      , Номенклатура.DESCR Имя
           |      , $Номенклатура.Номер_по_каталогу Номер
           |FROM $Документ.ПриходнаяНакладная AS ПриходнаяНакладная With (NOLOCK)
           |      INNER JOIN $ДокументСтроки.ПриходнаяНакладная AS ПриходнаяНакладнаяСтроки With (NOLOCK) ON ПриходнаяНакладная.IDDOC = ПриходнаяНакладнаяСтроки.IDDOC
           |      INNER JOIN _1SJOURN AS Журнал With (NOLOCK) ON ПриходнаяНакладная.IDDOC = Журнал.IDDOC
           |      INNER JOIN $Справочник.Номенклатура AS Номенклатура With (NOLOCK) ON $ПриходнаяНакладнаяСтроки.Товар = Номенклатура.ID
           |WHERE (Журнал.DATE_TIME_IDDOC <= :КонДата~)
           |      AND ((Журнал.CLOSED & 1) = 1)
           |      AND (Журнал.$ОбщийРеквизит.Фирма = :Фирма)
           |      AND ($ПриходнаяНакладная.Склад = :Склад)
           |ORDER BY Журнал.DATE_TIME_IDDOC DESC";
из-за TOP 1, у меня не получается. Помогите плиз...

Суть: для всех остатков получить цену из последнего поступления
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Объединение двух запросов
Ответ #1 - 23. Июня 2009 :: 11:39
Печать  
в соседней ветке аналогичный запросУлыбка
select
Товар,
(select top 1..) ПоследняяЦена
from
$РегистрОстатки..
  
Наверх
 
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Объединение двух запросов
Ответ #2 - 23. Июня 2009 :: 12:08
Печать  
alexdd писал(а) 23. Июня 2009 :: 11:39:
в соседней ветке аналогичный запросУлыбка
select
Товар,
(select top 1..) ПоследняяЦена
from
$РегистрОстатки..


Извини неуча, но как при этом связать по товару (регистр остатки выдает таблицу товаров), насколько понимаю так как ты предложил можно сделать для одного товара (а это не проблема).
Как присоединить к отбору, выдающему перечень товара.
Если не доганяю, пни посильнее (примером)

Если просто джойнить, выдает только один товар (у меня)
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Объединение двух запросов
Ответ #3 - 23. Июня 2009 :: 12:16
Печать  
select
Товар,
(select top 1..where .. and $ПриходнаяНакладнаяСтроки.Товар = рег.товар order by ..) ПоследняяЦена
from
$РегистрОстатки.. as рег
  
Наверх
 
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Объединение двух запросов
Ответ #4 - 23. Июня 2009 :: 12:22
Печать  
Спасибо, сделал.
Даже навскидку в разы быстрее
Ни разу не делал конструкцию с вложенным select до FROM
СПАСИБО
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать