Имя: Пароль:
1C
1С v8
Подскажите конструкцию запроса
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) То есть, конечно же, минимум, а не максимум.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.