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

то что вам надо называется "вариация на тему срез последних на каждую дату "
...
Рейтинг: 0 / 0
17.07.2014, 18:38
    #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
18.07.2014, 10:00
    #38699989
Alex.Ru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Спасибо, javapecker, получилось.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Помогите с запросом / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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