Имя: Пароль:
1C
1С v8
Знатокам Запросов
, ,
0 john_ddd
 
07.11.12
14:50
а можно в запросе сгруппировать вот так поля: имеем два столбца (тип строка)
а б
а в
после группировки получить
а б+в
1 Romich1981
 
07.11.12
14:57
можно
2 х86
 
07.11.12
14:59
тип значения колонок?
3 МихаилМ
 
07.11.12
15:03
(0)
врем таб
((б,б)
(в,б))

соединяйте, группируйте.
4 john_ddd
 
07.11.12
15:04
(2)да
5 john_ddd
 
07.11.12
15:04
ВЫБРАТЬ
   ВложенныйЗапрос.Поле1,
   ВложенныйЗапрос.Поле2
ИЗ
   (ВЫБРАТЬ
       "а" КАК Поле1,
       "б" КАК Поле2) КАК ВложенныйЗапрос

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ВложенныйЗапрос.Поле1,
   ВложенныйЗапрос.Поле2
ИЗ
   (ВЫБРАТЬ
       "а" КАК Поле1,
       "в" КАК Поле2) КАК ВложенныйЗапрос
6 palpetrovich
 
07.11.12
15:09
Выбрать
"а" КАК Поле1,
"б"+"в" КАК Поле2
7 john_ddd
 
07.11.12
15:11
(6)прикольно)
а как из запроса (5) сделать так
8 samozvanec
 
07.11.12
15:14
соединением вместо объединения
9 Maxus43
 
07.11.12
15:14
так можно только со строковыми типами, с остальными не прокатит
10 wylde
 
07.11.12
15:16
а так не устроит?

ВЫБРАТЬ
   ВложенныйЗапрос.Поле1,
   ВложенныйЗапрос.Поле2 КАК Поле21,
   ВложенныйЗапрос1.Поле2 КАК Поле22
ИЗ
   (ВЫБРАТЬ
       "а" КАК Поле1,
       "б" КАК Поле2) КАК ВложенныйЗапрос
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           "а" КАК Поле1,
           "в" КАК Поле2) КАК ВложенныйЗапрос1
       ПО ВложенныйЗапрос.Поле1 = ВложенныйЗапрос1.Поле1
11 palpetrovich
 
07.11.12
15:18
(10) получим "а", "б", "в" :)
12 wylde
 
07.11.12
15:20
(11)

ВЫБРАТЬ
   ВложенныйЗапрос.Поле1,
   ВложенныйЗапрос.Поле2 + ВложенныйЗапрос1.Поле2 КАК Поле2
ИЗ
   (ВЫБРАТЬ
       "а" КАК Поле1,
       "б" КАК Поле2) КАК ВложенныйЗапрос
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           "а" КАК Поле1,
           "в" КАК Поле2) КАК ВложенныйЗапрос1
       ПО ВложенныйЗапрос.Поле1 = ВложенныйЗапрос1.Поле1
13 palpetrovich
 
07.11.12
15:23
(12) так да :)
14 luns
 
07.11.12
15:25
(0) для вывода в отчет? если да, то гораздо проще уже в СКД сделать объединение в ресурсах.
15 john_ddd
 
07.11.12
15:28
(14)не для отчета...надо сгруппироват
маша жен 123
маша жен 321
а надо получить
маша жен 123,321
16 john_ddd
 
07.11.12
15:29
(12)так то да...но чето не могу как мне сгрупировать....у меня то одна таблица(15)
17 wylde
 
07.11.12
15:36
(16)

ВЫБРАТЬ
   ВложенныйЗапрос.Поле1,
   ВложенныйЗапрос.Поле2,
   ВложенныйЗапрос.Поле3 + "," + ВложенныйЗапрос1.Поле3 КАК Поле31
ИЗ
   (ВЫБРАТЬ
       "маша" КАК Поле1,
       "жен" КАК Поле2,
       "123" КАК Поле3) КАК ВложенныйЗапрос
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           "маша " КАК Поле1,
           "жен" КАК Поле2,
           "321" КАК Поле3) КАК ВложенныйЗапрос1
       ПО ВложенныйЗапрос.Поле1 = ВложенныйЗапрос1.Поле1
           И ВложенныйЗапрос.Поле2 = ВложенныйЗапрос1.Поле2
18 palpetrovich
 
07.11.12
15:37
(17) а может так? ...поля-то 2 :)
ВЫБРАТЬ
   ВложенныйЗапрос.Поле1,
   ВложенныйЗапрос.Поле2 + "," +ВложенныйЗапрос1.Поле2 КАК Поле2
ИЗ
   (ВЫБРАТЬ
       "маша жен" КАК Поле1,
       "123" КАК Поле2) КАК ВложенныйЗапрос
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           "маша жен" КАК Поле1,
           "321" КАК Поле2) КАК ВложенныйЗапрос1
       ПО ВложенныйЗапрос.Поле1 = ВложенныйЗапрос1.Поле1
19 wylde
 
07.11.12
15:40
(17) да х.з. может и так а может нет. Кажется ТС сам не знает.
20 wylde
 
07.11.12
15:40
т.е. (18)
21 john_ddd
 
07.11.12
15:42
другом был предложен такой вариант:

ВЫБРАТЬ
   ВложенныйЗапрос.Поле1,
   ВложенныйЗапрос.Поле2
ПОМЕСТИТЬ ВремТаб1
ИЗ
   (ВЫБРАТЬ
       "а" КАК Поле1,
       "б" КАК Поле2) КАК ВложенныйЗапрос

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ВложенныйЗапрос.Поле1,
   ВложенныйЗапрос.Поле2
ИЗ
   (ВЫБРАТЬ
       "а" КАК Поле1,
       "в" КАК Поле2) КАК ВложенныйЗапрос
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВложенныйЗапрос.Поле1,
   ВложенныйЗапрос.Поле2
ПОМЕСТИТЬ ВремТаб2
ИЗ
   (ВЫБРАТЬ
       "а" КАК Поле1,
       "б" КАК Поле2) КАК ВложенныйЗапрос

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ВложенныйЗапрос.Поле1,
   ВложенныйЗапрос.Поле2
ИЗ
   (ВЫБРАТЬ
       "а" КАК Поле1,
       "в" КАК Поле2) КАК ВложенныйЗапрос
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВремТаб1.Поле1,
   МАКСИМУМ(ВремТаб1.Поле2 + ВремТаб2.Поле2) КАК Поле3
ИЗ
   ВремТаб1 КАК ВремТаб1
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВремТаб2 КАК ВремТаб2
       ПО ВремТаб1.Поле1 = ВремТаб2.Поле1
           И ВремТаб1.Поле2 <> ВремТаб2.Поле2

СГРУППИРОВАТЬ ПО
   ВремТаб1.Поле1
22 wylde
 
07.11.12
15:57
(21) Только не МАКСИМУМ(ВремТаб1.Поле2 + ВремТаб2.Поле2) а МИНИМУМ(ВремТаб1.Поле2 + ВремТаб2.Поле2) чтобы получилось а бв вместо а вб.

Более мудреный вариант но яйца те же.
23 palpetrovich
 
07.11.12
16:00
(21) и вложенный и пакетный... да уж, твой друг легких путей не ищет :)
24 Палесандр
 
06.12.12
12:13
john_ddd, можете написать мне на почту? [email protected]
у меня вопросы по 1с есть к Вам?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн