powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Помогите с запросом
7 сообщений из 7, страница 1 из 1
Помогите с запросом
    #38699516
Alex.Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исходная задача такова. Есть документ. В нем поле контрагент. Документов и контрагентов много. Надо выбрать запросом для каждого контрагента один документ с последней датой.
Сделать это надо обязательно одним запросом т.к. результат надо скормить в уже готовый алгоритм который проблематично переделывать.
Я предполагаю что должен быть вложенный запрос типа (ВЫБРАТЬ ПЕРВЫЕ 1 ...), но как в него передать значение контрагента из строки главного запроса?
Спасибо.
...
Рейтинг: 0 / 0
Помогите с запросом
    #38699559
Zerro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для этого и придумали регистры. например взаиморасчетов
...
Рейтинг: 0 / 0
Помогите с запросом
    #38699563
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex.Ru,
Надо выбрать запросом для каждого контрагента один документ с последней датой. Если для контрагента существует несколько документов с одинаковой наибольшей датой, какой из них будет последним?
...
Рейтинг: 0 / 0
Помогите с запросом
    #38699567
Alex.Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapecker,
такого быть не может. Там больше одного документа в день не может быть в принципе.
...
Рейтинг: 0 / 0
Помогите с запросом
    #38699587
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex.RuИсходная задача такова. Есть документ. В нем поле контрагент. Документов и контрагентов много. Надо выбрать запросом для каждого контрагента один документ с последней датой.
Сделать это надо обязательно одним запросом т.к. результат надо скормить в уже готовый алгоритм который проблематично переделывать.
Я предполагаю что должен быть вложенный запрос типа (ВЫБРАТЬ ПЕРВЫЕ 1 ...), но как в него передать значение контрагента из строки главного запроса?
Спасибо.

то что вам надо называется "вариация на тему срез последних на каждую дату "
...
Рейтинг: 0 / 0
Помогите с запросом
    #38699595
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex.Ru, попробуйте так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
ВЫБРАТЬ
	Контрагенты.ссылка как Контрагент,
	МАКСИМУМ(ПоступлениеНаРасчетныйСчет.Дата) КАК дата
ПОМЕСТИТЬ вт
ИЗ
	Справочник.Контрагенты КАК контрагенты
		левое            //для всех контрагентов
                //внутреннее //только для контрагентов у которых есть документы
                СОЕДИНЕНИЕ Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет
		ПО контрагенты.Ссылка = ПоступлениеНаРасчетныйСчет.Контрагент

СГРУППИРОВАТЬ ПО
	Контрагенты.ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	вт.Контрагент,
	МАКСИМУМ(ПоступлениеНаРасчетныйСчет.Ссылка) КАК Ссылка
ИЗ
	вт КАК вт
		левое СОЕДИНЕНИЕ Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет
		ПО вт.Контрагент = ПоступлениеНаРасчетныйСчет.Контрагент
			И вт.дата = ПоступлениеНаРасчетныйСчет.Дата

СГРУППИРОВАТЬ ПО
	вт.Контрагент
	упорядочить по 1
...
Рейтинг: 0 / 0
Помогите с запросом
    #38699989
Alex.Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, javapecker, получилось.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Помогите с запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]