Имя: Пароль:
1C
1С v8
как в запросе лучше получить первую и последнюю строки выборки?
0 meegor
 
20.02.13
18:54
есть сложный запрос с под запросами, каждый из которых выдает довольно много строк, надо оставить от каждого подзапросика только 2 строки- первую и последнюю.
1 Bober
 
20.02.13
18:56
(0) какое конкретное значение или всю строку выборки?
2 meegor
 
20.02.13
18:59
первую и последнюю строку, тогда видно дату начала и конца, что и требуется
3 meegor
 
20.02.13
18:59
для подзапросика, почему то недоступно поле порядок
4 meegor
 
20.02.13
19:00
наверно лучше на временных таблицах делать?
5 PR
 
20.02.13
19:04
Выбрать первые 1 из первого запроса и объединить с выбрать первые 1 из второго запроса с обратной сортировкой.
6 meegor
 
20.02.13
19:09
я так и хотел, по в подзапросиках, почему то сортировки нет
7 Kashemir
 
20.02.13
19:10
8 Reset
 
20.02.13
19:12
(6) Если сортировки нет, понятия "первая","последняя" не имеют смысла
9 Птица
 
20.02.13
19:13
(2) если требуются именно дата начала и дата конца, тогда можно через макс и мин
10 Classic
 
20.02.13
19:18
(6)
Пробовал?
11 meegor
 
20.02.13
19:24
пытаюсь сделать как в (9) сделал групировку по всем полям - сумируемое поле с датой и минимум. Но пока выдает все строчки
12 meegor
 
20.02.13
19:24
что то не так делаю
13 meegor
 
20.02.13
19:25
(10) там поле ИТОГИ есть в запросе верхнего уровня, а если войти в этот запрос, то в по дзапросах нет
14 meegor
 
20.02.13
19:26
ВЫБРАТЬ РАЗРЕШЕННЫЕ
   ВсеОтпуска.Документ,
   ВсеОтпуска.Сотрудник,
   ВсеОтпуска.ДатаНачала,
   ВсеОтпуска.ДатаОкончания,
   ВсеОтпуска.ВидРасчета,
   ВсеОтпуска.Состояние
ИЗ
   (ВЫБРАТЬ
       НачислениеОтпускаРаботникамОрганизаций.Ссылка КАК Документ,
       НачислениеОтпускаРаботникамОрганизаций.Сотрудник КАК Сотрудник,
       НачислениеОтпускаРаботникамОрганизаций.ДатаНачала КАК ДатаНачала,
       НачислениеОтпускаРаботникамОрганизаций.ДатаОкончания КАК ДатаОкончания,
       НачислениеОтпускаРаботникамОрганизаций.ВидРасчета КАК ВидРасчета,
       НачислениеОтпускаРаботникамОрганизаций.Состояние КАК Состояние
   ИЗ
       Документ.НачислениеОтпускаРаботникамОрганизаций.Начисления КАК НачислениеОтпускаРаботникамОрганизаций
   ГДЕ
       (НачислениеОтпускаРаботникамОрганизаций.Сотрудник = &Работник
               ИЛИ НачислениеОтпускаРаботникамОрганизаций.Сотрудник.ОсновноеНазначение = &Работник)
       И НачислениеОтпускаРаботникамОрганизаций.Ссылка.Проведен = ИСТИНА
       И НачислениеОтпускаРаботникамОрганизаций.Ссылка.Организация = &Организация
       И НачислениеОтпускаРаботникамОрганизаций.Состояние В(&Отпуска)
   
   ОБЪЕДИНИТЬ ВСЕ
   
   ВЫБРАТЬ
       НевыходыВОрганизациях.Ссылка,
       НевыходыВОрганизациях.Сотрудник,
       НевыходыВОрганизациях.ДатаНачала,
       НевыходыВОрганизациях.ДатаОкончания,
       НевыходыВОрганизациях.ВидРасчета,
       НевыходыВОрганизациях.Состояние
   ИЗ
       Документ.НевыходыИОдноразовыеВыплатыВОрганизациях.Начисления КАК НевыходыВОрганизациях
   ГДЕ
       (НевыходыВОрганизациях.Сотрудник = &Работник
               ИЛИ НевыходыВОрганизациях.Сотрудник.ОсновноеНазначение = &Работник)
       И НевыходыВОрганизациях.Ссылка.Проведен = ИСТИНА
       И НевыходыВОрганизациях.Ссылка.Организация = &Организация
       И НевыходыВОрганизациях.Состояние В(&Отпуска)
   
   ОБЪЕДИНИТЬ ВСЕ
   
   ВЫБРАТЬ
       НачислениеПоБольничномуЛистуНачисления.Ссылка,
       НачислениеПоБольничномуЛистуНачисления.Сотрудник,
       НачислениеПоБольничномуЛистуНачисления.ДатаНачала,
       НачислениеПоБольничномуЛистуНачисления.ДатаОкончания,
       НачислениеПоБольничномуЛистуНачисления.ВидРасчета,
       НачислениеПоБольничномуЛистуНачисления.Состояние
   ИЗ
       Документ.НачислениеПоБольничномуЛисту.Начисления КАК НачислениеПоБольничномуЛистуНачисления
   ГДЕ
       (НачислениеПоБольничномуЛистуНачисления.Сотрудник = &Работник
               ИЛИ НачислениеПоБольничномуЛистуНачисления.Сотрудник.ОсновноеНазначение = &Работник)
       И НачислениеПоБольничномуЛистуНачисления.Ссылка.Проведен = ИСТИНА
       И НачислениеПоБольничномуЛистуНачисления.Ссылка.Организация = &Организация) КАК ВсеОтпуска

УПОРЯДОЧИТЬ ПО
   ВсеОтпуска.ДатаНачала
15 Classic
 
20.02.13
19:30
(11)
Вместе с ПЕРВЫЕ УПОРЯДОЧИТЬ вполне себе работает.
Не знаю, как ты проверял
16 meegor
 
20.02.13
19:35
так упорядочивает всю таблицу, а надо каждый под запросик
17 Classic
 
20.02.13
19:36
(16)
Ты пробовал упорядочить подзапрос?
18 meegor
 
20.02.13
19:40
выдает ошибку:
во вложенных запросах нельзя применять операцию упорядочить по
19 meegor
 
20.02.13
19:40
без использования конструкции ПЕРВЫЕ.
<<?>>УПОРЯДОЧИТЬ ПО
20 meegor
 
20.02.13
19:41
ОБЪЕДИНИТЬ ВСЕ
   
ВЫБРАТЬ ПЕРВЫЕ 1
   НачислениеПоБольничномуЛистуНачисления.Ссылка,
   НачислениеПоБольничномуЛистуНачисления.Сотрудник,
   НачислениеПоБольничномуЛистуНачисления.ДатаНачала,
   НачислениеПоБольничномуЛистуНачисления.ДатаОкончания,
   НачислениеПоБольничномуЛистуНачисления.ВидРасчета,
   НачислениеПоБольничномуЛистуНачисления.Состояние
ИЗ
   Документ.НачислениеПоБольничномуЛисту.Начисления КАК НачислениеПоБольничномуЛистуНачисления
ГДЕ
   (НачислениеПоБольничномуЛистуНачисления.Сотрудник = &Работник
           ИЛИ НачислениеПоБольничномуЛистуНачисления.Сотрудник.ОсновноеНазначение = &Работник)
   И НачислениеПоБольничномуЛистуНачисления.Ссылка.Проведен = ИСТИНА
   И НачислениеПоБольничномуЛистуНачисления.Ссылка.Организация = &Организация

УПОРЯДОЧИТЬ ПО
   НачислениеПоБольничномуЛистуНачисления.ДатаНачала КАК ВсеОтпуска
21 Classic
 
20.02.13
19:42
(19)
Так и зашибись. Тебе ж предложили ВЫБРАТЬ ПЕРВЫЕ 1 УПОРЯДОЧИТЬ ПО.. ОБЪЕЕДИНИТЬ ВЫБРАТЬ ПЕРВЫЕ 1 УПОРЯДОЧИТЬ ПО .. УБЫВ

Зачем тебе упорядочивание без первых?
22 Bober
 
20.02.13
20:15
(0) как вариант, мин и макс по полю с датой
23 meegor
 
20.02.13
23:18
спасибо, так и сделал, получилось
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн