Выбрать первые 1 из связей

1. avogadro57 07.07.17 06:25 Сейчас в теме
Здравствуйте, отчет по договорам сейчас выводит в столбце СчетНаОплатуПокупателю.Дата все договора, нужен только последний. Не могу понять куда именно вставить вложенный запрос, где будет ВЫБРАТЬ ПЕРВЫЕ 1, и УПОРЯДОЧИТЬ ПО УБЫВ

Подскажите, пожалуйста, ниже запрос:

ВЫБРАТЬ
	ДоговорыКонтрагентов.Ссылка КАК Ссылка,
	ДоговорыКонтрагентов.Представление,
	ДоговорыКонтрагентов.Владелец,
	ПРЕДСТАВЛЕНИЕ(ДоговорыКонтрагентов.Владелец),
	ДоговорыКонтрагентов.Дата,
	ДоговорыКонтрагентов.Номер,
	ЗначенияСвойствОбъектов.Значение,
	ПРЕДСТАВЛЕНИЕ(ЗначенияСвойствОбъектов.Значение),
	СчетНаОплатуПокупателю.Дата КАК Дата1
ИЗ
	Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
			ПО ДоговорыКонтрагентов.Ссылка = ЗначенияСвойствОбъектов.Объект
				И (ЗначенияСвойствОбъектов.Свойство.Наименование = "Периодичность (мес)")
		ПО СчетНаОплатуПокупателю.ДоговорКонтрагента = ДоговорыКонтрагентов.Ссылка 
ГДЕ
	ДоговорыКонтрагентов.Наименование ПОДОБНО "%ЦТО%"
Показать
По теме из базы знаний
Найденные решения
5. Infector 201 07.07.17 07:10 Сейчас в теме
ВЫБРАТЬ
    ДоговорыКонтрагентов.Ссылка КАК Ссылка,
    ДоговорыКонтрагентов.Представление,
    ДоговорыКонтрагентов.Владелец,
    ПРЕДСТАВЛЕНИЕ(ДоговорыКонтрагентов.Владелец),
    ДоговорыКонтрагентов.Дата,
    ДоговорыКонтрагентов.Номер,
    ЗначенияСвойствОбъектов.Значение,
    ПРЕДСТАВЛЕНИЕ(ЗначенияСвойствОбъектов.Значение),
    СчетНаОплатуПокупателю.Дата КАК Дата1
Поместить Исх

ИЗ
    Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
            ПО ДоговорыКонтрагентов.Ссылка = ЗначенияСвойствОбъектов.Объект
                И (ЗначенияСвойствОбъектов.Свойство.Наименование = "Периодичность (мес)")
        ПО СчетНаОплатуПокупателю.ДоговорКонтрагента = ДоговорыКонтрагентов.Ссылка 
ГДЕ
    ДоговорыКонтрагентов.Наименование ПОДОБНО "%ЦТО%"
;/////////////////////////////////////////
ВЫбрать 
    Исх.Владелец,
    Максимум( Исх.Дата) КАК Дата
Поместить Груп
ИЗ Исх КАК Исх
/////////////////////////////////////////
Выбрать 

  Исх.Ссылка КАК Ссылка,
    Исх.Представление,
    Исх.Владелец,
    Исх.Дата,
    Исх.Номер,
    Исх.Значение,
    Исх.Дата КАК Дата1
ИЗ Исх КАК Исх
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Груп КАК Груп ПО 
        Исх .Владелец = Груп.Владелец  И
         Исх .Дата= Груп.Дата
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Release 07.07.17 07:00 Сейчас в теме
(1) Добавь группировку с агрегацией по максимуму: МАКСИМУМ(СчетНаОплатуПокупателю.Дата) КАК Дата1.

ВЫБРАТЬ
    ДоговорыКонтрагентов.Ссылка КАК Ссылка,
    ДоговорыКонтрагентов.Представление,
    ДоговорыКонтрагентов.Владелец,
    ПРЕДСТАВЛЕНИЕ(ДоговорыКонтрагентов.Владелец),
    ДоговорыКонтрагентов.Дата,
    ДоговорыКонтрагентов.Номер,
    ЗначенияСвойствОбъектов.Значение,
    ПРЕДСТАВЛЕНИЕ(ЗначенияСвойствОбъектов.Значение),
    МАКСИМУМ(СчетНаОплатуПокупателю.Дата) КАК Дата1
ИЗ
    Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
            ПО ДоговорыКонтрагентов.Ссылка = ЗначенияСвойствОбъектов.Объект
                И (ЗначенияСвойствОбъектов.Свойство.Наименование = "Периодичность (мес)")
        ПО СчетНаОплатуПокупателю.ДоговорКонтрагента = ДоговорыКонтрагентов.Ссылка 
ГДЕ
    ДоговорыКонтрагентов.Наименование ПОДОБНО "%ЦТО%"
СГРУППИРОВАТЬ ПО
    ДоговорыКонтрагентов.Ссылка,
    ДоговорыКонтрагентов.Представление,
    ДоговорыКонтрагентов.Владелец,
    ПРЕДСТАВЛЕНИЕ(ДоговорыКонтрагентов.Владелец),
    ДоговорыКонтрагентов.Дата,
    ДоговорыКонтрагентов.Номер,
    ЗначенияСвойствОбъектов.Значение,
    ПРЕДСТАВЛЕНИЕ(ЗначенияСвойствОбъектов.Значение)
Показать
2. Rust 07.07.17 06:46 Сейчас в теме
Ну открой консоль запросов выстави то что нужно а Консоль сама запрос соберёт
3. avogadro57 07.07.17 06:50 Сейчас в теме
(2) Через конструктор запросов? А куда там заходить, пакет запросов?
5. Infector 201 07.07.17 07:10 Сейчас в теме
ВЫБРАТЬ
    ДоговорыКонтрагентов.Ссылка КАК Ссылка,
    ДоговорыКонтрагентов.Представление,
    ДоговорыКонтрагентов.Владелец,
    ПРЕДСТАВЛЕНИЕ(ДоговорыКонтрагентов.Владелец),
    ДоговорыКонтрагентов.Дата,
    ДоговорыКонтрагентов.Номер,
    ЗначенияСвойствОбъектов.Значение,
    ПРЕДСТАВЛЕНИЕ(ЗначенияСвойствОбъектов.Значение),
    СчетНаОплатуПокупателю.Дата КАК Дата1
Поместить Исх

ИЗ
    Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
            ПО ДоговорыКонтрагентов.Ссылка = ЗначенияСвойствОбъектов.Объект
                И (ЗначенияСвойствОбъектов.Свойство.Наименование = "Периодичность (мес)")
        ПО СчетНаОплатуПокупателю.ДоговорКонтрагента = ДоговорыКонтрагентов.Ссылка 
ГДЕ
    ДоговорыКонтрагентов.Наименование ПОДОБНО "%ЦТО%"
;/////////////////////////////////////////
ВЫбрать 
    Исх.Владелец,
    Максимум( Исх.Дата) КАК Дата
Поместить Груп
ИЗ Исх КАК Исх
/////////////////////////////////////////
Выбрать 

  Исх.Ссылка КАК Ссылка,
    Исх.Представление,
    Исх.Владелец,
    Исх.Дата,
    Исх.Номер,
    Исх.Значение,
    Исх.Дата КАК Дата1
ИЗ Исх КАК Исх
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Груп КАК Груп ПО 
        Исх .Владелец = Груп.Владелец  И
         Исх .Дата= Груп.Дата
Показать
8. Release 07.07.17 07:21 Сейчас в теме
(5) В такой конструкции ВТ вообще не нужны. К тому же, еще и запрос кривой, если, конечно, я правильно понял задачу. У вас в результате выберет последний счет по контрагенту без учета договора. Т.е. на все договора контрагента будет один счет по "случайному" договору.
9. Infector 201 07.07.17 07:25 Сейчас в теме
(8) В изначальном запросе - ДоговорыКонтрагентов.Дата,
ДоговорыКонтрагентов.Владелец - это контрагент по идее. Где же тут счет?
10. Release 07.07.17 07:39 Сейчас в теме
(9)Да, прошу прощения, как я и писал, похоже я неправильно понял задачу.
Но тогда, на мой взгляд, лучше для агрегации использовать не результат запроса из ВТ, а сразу выборку из справочника ДоговорыКонтрагентов, а потом соединять.
11. Infector 201 07.07.17 08:35 Сейчас в теме
(10) В этом случае скорее да. Но бывает, что нужно доработать чужой код и тогда часто проще взять то, что автор изначального кода уже получил спустя сотни-тысячи строк от первоначальных таблиц базы. особенно если стиль написания в корне отличается от Вашего собственного. Мне такие "подзадачи" чаще встраивать в что-то готовое приходилось, поэтому временная таблица сама собой всплыла :)
6. Infector 201 07.07.17 07:12 Сейчас в теме
Возможны вариации, например без второй временной таблицы, но мне такой вариант кажется более доступным для понимания.
P.S.: к синтаксису сильно не придираться, т.к. консолькой запрос не проверял, а на коленке набросал на основе запроса автора.
7. avogadro57 07.07.17 07:20 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот