Есть в запросе таблица с такими реквизитами: Контрагент ДокументПартии
У одного контрагента может быть несколько документов партии.
Задача. Выбрать из этой таблицы всех контрагентов и только те документы партии, дата которых самая последняя. В результате в колонке контрагентов должны быть все разные значения
Например:
Контрагент1 Поступление 1 от 02.10.2012 Контрагент1 Поступление 2 от 20.11.2012 Контрагент1 Поступление 3 от 22.11.2012 Контрагент2 Поступление 4 от 18.11.2012 Контрагент2 Поступление 5 от 19.11.2012
надо только:
Контрагент1 Поступление 3 от 22.11.2012 Контрагент2 Поступление 5 от 19.11.2012
Как построить запрос? P.S. Запрос используется в динамическом списке управляемого приложения.
Так почему-то не работает. Берет не последний документ. Возможно документ создавался пожже но задним числом, что порядок ссылок не соответствует порядку дат. Ну хорошо, добавим дату, а что делать с партией? Ведь так
|ВЫБРАТЬ | Контрагент, | МАКСИМУМ(ДокументПартии) КАК ДокументПартии | МАКСИМУМ(ДокументПартии.Дата) КАК ДатаПартии |ИЗ | МояТаблица |СГРУППИРОВАТЬ ПО | Контрагент
Так почему-то не работает. Берет не последний документ. Возможно документ создавался пожже но задним числом, что порядок ссылок не соответствует порядку дат. Ну хорошо, добавим дату, а что делать с партией? Ведь так
|ВЫБРАТЬ | Контрагент, | МАКСИМУМ(ДокументПартии) КАК ДокументПартии | МАКСИМУМ(ДокументПартии.Дата) КАК ДатаПартии |ИЗ | МояТаблица |СГРУППИРОВАТЬ ПО | Контрагент
тоже работает не правильно
|ВЫБРАТЬ | Контрагент, | ДокументПартии, | МАКСИМУМ(ДокументПартии.Дата) КАК ДатаПартии |ИЗ | МояТаблица |СГРУППИРОВАТЬ ПО | Контрагент,ДокументПартии
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник. ЗиУП
У нас здесь своя атмосфера...
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8
logist, ваш вариант не рабочий уже по синтаксису .
alex040269, результат вашего запроса (я так понимаю Логист его же хотел написать) вернет ту же таблицу, которая была. Точно такую же.
Насчет добавить дату я не то имел ввиду. Как-то так:
|ВЫБРАТЬ | Контрагент, | МАКСИМУМ(ДокументПартии.Дата) КАК ДатаПартии |ПОМЕСТИТЬ ХЗ |ИЗ | МояТаблица КАК МояТаблица |СГРУППИРОВАТЬ ПО | Контрагент |; |ВЫБРАТЬ | МояТаблица.Контрагент, | МАКСИМУМ(МояТаблица.ДокументПартии) КАК ДокументПартии, |ИЗ | МояТаблица КАК МояТаблица | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ХЗ КАК ХЗ | ПО МояТаблица.Контрагент = ХЗ.Контрагент | ПО МояТаблица.ДатаПартии = ХЗ.ДокументПартии.Дата |СГРУППИРОВАТЬ ПО | МояТаблица.Контрагент
Признаться, я удивлен, что никто из авторов выше (включая ТС) не знал как правильно запрос составить.
Я вот только не помню можно ли в динамическом списке использовать временные таблицы. Если нет, то запрос можно переписать так:
|ВЫБРАТЬ | МояТаблица.Контрагент, | МАКСИМУМ(МояТаблица.ДокументПартии) КАК ДокументПартии, |ИЗ | МояТаблица КАК МояТаблица | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ( | ВЫБРАТЬ | Контрагент, | МАКСИМУМ(ДокументПартии.Дата) КАК ДатаПартии | ИЗ | МояТаблица КАК МояТаблица | СГРУППИРОВАТЬ ПО | Контрагент | ) КАК ХЗ | ПО МояТаблица.Контрагент = ХЗ.Контрагент | ПО МояТаблица.ДатаПартии = ХЗ.ДокументПартии.Дата |СГРУППИРОВАТЬ ПО | МояТаблица.Контрагент
Спасибо Вофка, временные таблицы в дин. списке использовать нельзя. А вот второй вариант поинтересней. Сейчас попробуем. Вот еще лучше было бы соединять не по дате а по моменту времени, только как его в запросе получить?..
У нас здесь своя атмосфера...
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8
Цитата(vbi @ 22.11.12, 15:38)
Вот еще лучше было бы соединять не по дате а по моменту времени
Я не думаю, что это было бы лучше, т.к. я лично не знаю как будет отрабатывать функция МАКСИМУМ для момента времени. Я догадываюсь, но надо понимать, что это инфа не 100%. К тому же, динамический список подразумевает работу с пользователем. А пользователь работает с датой (число-месяц-год часы-минуты-секунды) и все, что меньше секунды ним не будет восприниматься. Поэтому, собственно, не вижу в этом смысла.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!