Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 22:44

Как выбрать различные данные в запросе

Автор Sinsinmin, 15 ноя 2010, 13:25

0 Пользователей и 1 гость просматривают эту тему.

Sinsinmin

Есть Регистр Формовка
Измерения:
Отливка
НомерОтливки
НомерБригады
(РесурсовНет)

И есть регистр Брак
Измерения:
Отливка
НомерОтливки
НомерИзвещения
Ресурсы:
---///----

Запрос выбирает два одинаковых номера отливки из разных годов. К примеру:
Бригада: 21 , НомерОтливки: 105 Отливка: АБЦ  Дата 05.09.2009
Бригада: 31 , НомерОтливки: 105 Отливка: АБЦ. Дата 05.10.2010
А нужна только последняя отливка. В данном приведённом примере отливка бригады : 31 за 2010 год.


ВЫБРАТЬ РАЗЛИЧНЫЕ
   БракНомерноеЛитьеСрезПоследних.НомерОтливки КАК БракШт,
   БракНомерноеЛитьеСрезПоследних.Отливка,
   ФормовкаНомерноеЛитьеСрезПоследних.НомерБригады,
   ФормовкаНомерноеЛитьеСрезПоследних.НомерОтливки КАК К
ИЗ
   РегистрСведений.ФормовкаНомерноеЛитье.СрезПоследних КАК ФормовкаНомерноеЛитьеСрезПоследних
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.БракНомерноеЛитье.СрезПоследних КАК БракНомерноеЛитьеСрезПоследних
         ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Брак КАК Брак
         ПО БракНомерноеЛитьеСрезПоследних.Регистратор = Брак.Регистратор
            И БракНомерноеЛитьеСрезПоследних.НомерИзвещения = Брак.НомерИзвещения
      ПО БракНомерноеЛитьеСрезПоследних.НомерОтливки = ФормовкаНомерноеЛитьеСрезПоследних.НомерОтливки
         И БракНомерноеЛитьеСрезПоследних.Отливка = ФормовкаНомерноеЛитьеСрезПоследних.Отливка
ГДЕ
   БракНомерноеЛитьеСрезПоследних.Регистратор.Дата МЕЖДУ &НачалоПериода И &КонецПериода
   И (НЕ Брак.ВидБрака В (&ТехПотери))
   И (НЕ Брак.ВидБрака В ИЕРАРХИИ (&ИБК))
   И ФормовкаНомерноеЛитьеСрезПоследних.Отливка = &Отливка

СГРУППИРОВАТЬ ПО
   БракНомерноеЛитьеСрезПоследних.Отливка,
   ФормовкаНомерноеЛитьеСрезПоследних.НомерБригады,
   ФормовкаНомерноеЛитьеСрезПоследних.НомерОтливки,
   БракНомерноеЛитьеСрезПоследних.НомерОтливки


Lexius

Наверное поможет агрегатная функция МАКСИМУМ(<>)

Sinsinmin

Не. Пришлось использовать вложенный запрос. Тему можно закрыть.
"ВЫБРАТЬ
                      |   МАКСИМУМ(ФормовкаНомерноеЛитьеСрезПоследних.Регистратор.Дата) КАК РегистраторДата,
                      |   ФормовкаНомерноеЛитьеСрезПоследних.Отливка,
                      |   ФормовкаНомерноеЛитьеСрезПоследних.НомерОтливки
                      |ПОМЕСТИТЬ ПоследниеФормовки
                      |ИЗ
                      |   РегистрСведений.ФормовкаНомерноеЛитье.СрезПоследних(&КонецПериода, ) КАК ФормовкаНомерноеЛитьеСрезПоследних
                      |
                      |СГРУППИРОВАТЬ ПО
                      |   ФормовкаНомерноеЛитьеСрезПоследних.Отливка,
                      |   ФормовкаНомерноеЛитьеСрезПоследних.НомерОтливки
                      |;
                      |
                      |////////////////////////////////////////////////////////////////////////////////
                      |ВЫБРАТЬ
                      |   БракНомерноеЛитье.Отливка,
                      |   КОЛИЧЕСТВО(РАЗЛИЧНЫЕ БракНомерноеЛитье.НомерОтливки) КАК ТехПотериШт,
                      |   ФормовкаНомерноеЛитьеСрезПоследних.НомерБригады
                      |ИЗ
                      |   РегистрСведений.БракНомерноеЛитье КАК БракНомерноеЛитье
                      |      ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.Брак КАК Брак
                      |      ПО БракНомерноеЛитье.Регистратор = Брак.Регистратор
                      |         И БракНомерноеЛитье.НомерИзвещения = Брак.НомерИзвещения
                      |      ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПоследниеФормовки КАК ПоследниеФормовки
                      |         ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ФормовкаНомерноеЛитье.СрезПоследних(&КонецПериода, ) КАК ФормовкаНомерноеЛитьеСрезПоследних
                      |         ПО ПоследниеФормовки.Отливка = ФормовкаНомерноеЛитьеСрезПоследних.Отливка
                      |            И ПоследниеФормовки.НомерОтливки = ФормовкаНомерноеЛитьеСрезПоследних.НомерОтливки
                      |            И ПоследниеФормовки.РегистраторДата = ФормовкаНомерноеЛитьеСрезПоследних.Регистратор.Дата
                      |      ПО БракНомерноеЛитье.Отливка = ПоследниеФормовки.Отливка
                      |         И БракНомерноеЛитье.НомерОтливки = ПоследниеФормовки.НомерОтливки
                      |ГДЕ
                      |   БракНомерноеЛитье.Регистратор.Дата МЕЖДУ &НачалоПериода И &КонецПериода
                      |   И (Брак.ВидБрака В (&ТехПотери))
                      |   И (НЕ Брак.ВидБрака В ИЕРАРХИИ (&ИБК))
                      |  "+ Фильтр + "
                      |СГРУППИРОВАТЬ ПО
                      |   БракНомерноеЛитье.Отливка,
                      |   ФормовкаНомерноеЛитьеСрезПоследних.НомерБригады";

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск