Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Выборка по МИН значению (число прочтений - 1071 )
Foma
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 61
Зарегистрирован: 16. Сентября 2010
Выборка по МИН значению
10. Февраля 2011 :: 05:56
Печать  
Есть:
Регистр.ДополнительныеУслугиКонтрагентам
с измерениями "ЗаявкаПокупателя" тип "Документ.ЗаявкаПокупателя" и "Получатель" тип "Неопределенный"
в документе "ЗаявкаПокупателя" есть реквизит шапки "ДатаОтгрузки"
необходимо выбрать из итогов регистра всех "Получателей" с Минимальной ДатойОтгрузки

т.е. каждая строка это ссылка на получателя и ДатаОтгрузки и не должно быть двух и более строк с одним получателем.

У меня получился такой запрос, но получатели дублируются, где копать - не знаю. Просьба помочь разобраться...




ТабЗапрос      = Создатьобъект("ТаблицаЗначений");
     
     стрдатыТА=строка(формат(НачМесяца(ПолучитьДатуТА()),"ДГГГГММДД"));
     
     ТекстЗапроса = "
     |SELECT
     |      $Рег.Получатель as [Получатель $Неопределенный],
     |      MIN($Док.ДатаОтгрузки) as [ДатаОтгрузки]
     |FROM
     |      $РегистрИтоги.ДополнительныеУслугиКонтрагентам as Рег
     |INNER JOIN
     |      $Документ.ЗаявкаПокупателя as Док ON Док.IDDoc = $Рег.ЗаявкаПокупателя
     |WHERE
     |      Рег.PERIOD= cast ('"+стрдатыТА+"'as datetime) AND
     |      $Док.ЗаявкаНаДоставку = $ПустойИД AND
     |      $Рег.ТипУслуги = :Доставка
     |GROUP BY
     |      $Рег.Получатель,
     |      $Док.ДатаОтгрузки
     |";
           
     
     RS.УстановитьТекстовыйПараметр("Доставка", Перечисление.ТипыУслуг.Доставка);
     
     Рез = RS.ВыполнитьИнструкцию(ТекстЗапроса,ТабЗапрос,1);
  
Наверх
 
IP записан
 
Foma
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 61
Зарегистрирован: 16. Сентября 2010
Re: Выборка по МИН значению
Ответ #1 - 10. Февраля 2011 :: 05:58
Печать  
1С 7.7 + MS SQL 2008R2
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Выборка по МИН значению
Ответ #2 - 10. Февраля 2011 :: 06:32
Печать  
--. $Док.ДатаОтгрузки

напиши так в последней строке
  
Наверх
 
IP записан
 
Foma
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 61
Зарегистрирован: 16. Сентября 2010
Re: Выборка по МИН значению
Ответ #3 - 10. Февраля 2011 :: 06:33
Печать  
Так работает

ТекстЗапроса = "
     |SELECT
     |      $Рег.Получатель as [Получатель $Неопределенный],
     |      MIN($Док.ДатаОтгрузки) as [ДатаОтгрузки]
     |FROM
     |      $РегистрИтоги.ДополнительныеУслугиКонтрагентам as Рег
     |INNER JOIN
     |      $Документ.ЗаявкаПокупателя as Док ON Док.IDDoc = $Рег.ЗаявкаПокупателя
     |WHERE
     |      Рег.PERIOD= cast ('"+стрдатыТА+"'as datetime) AND
     |      $Док.ЗаявкаНаДоставку = $ПустойИД AND
     |      $Рег.ТипУслуги = :Доставка
     |GROUP BY
     |      $Рег.Получатель
     |ORDER BY
     |      ДатаОтгрузки ASC
     |";
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать