|
Подскажите конструкцию запроса | ☑ | ||
---|---|---|---|---|
0
Trance_1C
18.01.12
✎
06:42
|
Допустим нужно получить такую выборку из рег. накопления "Взаиморасчеты с контрагентами" за период 1 мес.
Контрагент | Оборот за мес. | дата первого обращения. | с первыми двумя колонками все понятно, пока не получается вытащить дату первого движения по контрагенту, я так понимаю нужно делать промежуточную выборку с сортировкой и затем нумерацией строк и затем присоединять к исходной получая дату из 1 строки. ??? |
|||
1
ZanderZ
18.01.12
✎
06:44
|
срезпервых
|
|||
2
Rie
18.01.12
✎
06:45
|
Левое соединение по Контрагенту запроса, получающего обороты, с запросом, выбирающим первую дату.
|
|||
3
Trance_1C
18.01.12
✎
06:54
|
(2) верно левое соединение это первое что приходит на ум, но не лучается.
например здесь первая таблица выбирает контрагентов с оборотами вторая по ней пытается получить контрагента и его первую дату с оборотом. в третьей они соединяются. выходит что во второй таблице сворачивается вся выборка и мы получаем только одну самую первую дату, а надо первую дату в разрезе контрагентов... ??? ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаУпрОборот ПОМЕСТИТЬ Расчеты ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, Движения, ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПЕРВЫЕ 1 Расчеты.Контрагент КАК Контрагент, ВзаиморасчетыСКонтрагентамиОбороты.ПериодСекунда КАК Периодсек, ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрОборот ПОМЕСТИТЬ ДопРасчеты ИЗ Расчеты КАК Расчеты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(, &КонецПериода, Авто, ) КАК ВзаиморасчетыСКонтрагентамиОбороты ПО Расчеты.Контрагент = ВзаиморасчетыСКонтрагентамиОбороты.Контрагент УПОРЯДОЧИТЬ ПО Периодсек, Контрагент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Расчеты.Контрагент, Расчеты.СуммаУпрОборот, ДопРасчеты.Периодсек ИЗ Расчеты КАК Расчеты ЛЕВОЕ СОЕДИНЕНИЕ ДопРасчеты КАК ДопРасчеты ПО Расчеты.Контрагент = ДопРасчеты.Контрагент |
|||
4
Trance_1C
18.01.12
✎
07:01
|
Как бы во второй таблице сначала объединить по контрагенту, затем только по нему отсортировать период по убыванию и выбрать первую строку, вот не могу пока сообразить :)
|
|||
5
Rie
18.01.12
✎
07:02
|
(4) А ты не ВЫБРАТЬ ПЕРВЫЕ 1, а используй МАКСИМУМ и группировку.
|
|||
6
Trance_1C
18.01.12
✎
07:06
|
(5) Гениально Алекс, спасибо!
С меня бочонок пива :) |
|||
7
Rie
18.01.12
✎
07:06
|
+(5) То есть, конечно же, минимум, а не максимум.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |