Имя: Пароль:
1C
1С v8
Как в запросе получить соединенное поле тип строка?
,
0 Arutynov
 
23.04.18
16:25
Здравствуйте. Вопрос по запросу
имеем:

Поле 1, Поле2, Поле25
Поле 1, Поле2, Поле26

Необходимо вывести как:

Поле1, Поле2, Поле25 Поле26

Соединенное поле тип строка
Заранее спасибо
1 RomanYS
 
23.04.18
16:29
Запрос так не умеет. Смотреть в сторону СКД, или постобработка результата запроса
2 Ёпрст
 
23.04.18
16:29
если поле25 и поле26 строки, то так

выбрать поле1,поле2,поле25+Поле26
из табличка Сгруппировать по Поле1,Поле2,Поле25+Поле26
3 Arutynov
 
23.04.18
16:35
(1) А в  СКД как можно это сделать? Забыл дописать что там есть и иные строки.

Допустим

Поле 1, Поле2, Поле25
Поле 1, Поле2, Поле26
Поле 3, Поле4, Поле27

Должно стать

Поле 1, Поле2, Поле25 + Поле26
Поле 3, Поле4, Поле27
4 Arutynov
 
23.04.18
16:38
(2) извиняюсь, но не очень понял как я это сделаю
5 RomanYS
 
23.04.18
16:45
6 Ёпрст
 
23.04.18
16:46
(4)
ВЫБРАТЬ
    "Вася" КАК Поле1,
    "Федя" КАК Поле2,
    "Маша" КАК Поле25,
    "Дура" КАК Поле26
ПОМЕСТИТЬ Табличка

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

ВЫБРАТЬ
    "Вася",
    "Федя",
    "Маша",
    "Хорошая"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Табличка.Поле1,
    Табличка.Поле2,
    Табличка.Поле25 + Табличка.Поле26 КАК Поле3
ИЗ
    Табличка КАК Табличка

СГРУППИРОВАТЬ ПО
    Табличка.Поле1,
    Табличка.Поле2,
    Табличка.Поле25 + Табличка.Поле26
7 Buster007
 
23.04.18
16:48
(6) на уровень Гения1С претендуешь?)
8 Arutynov
 
24.04.18
08:05
Спасибо, сейчас по разбираюсь.
9 catena
 
24.04.18
08:52
(6)Оно не так хочет. Оно хочет агрегатную функцию для строк.
10 catena
 
24.04.18
08:53
"Вася" "Федя" "Маша"
"Вася" "Федя" "Дура"

На выходе:
"Вася" "Федя" "Маша Дура"
11 Сти
 
24.04.18
09:23
К сожалению, функция STRING_AGG появилась только в MSSQL 2017. Разработчики, как обычно, долго смотрели на group_concat, которая была в MySQL с давних времен и наконец-то решили ее уворовать, решив, что такая функция все же полезна. Слишком долго. Вот и нет такого в 1С, они ж испокон веков на MS SQL ориентированы.
12 Ёпрст
 
24.04.18
14:40
(10) И ? на выходе так и будет ))))
13 cw014
 
24.04.18
15:02
(12) Ему сгруппировать надо, но вместо агрегатной функции конкатенацию строк нужно
14 lEvGl
 
гуру
24.04.18
15:10
чем не конкатенация в (6)
15 cw014
 
24.04.18
15:16
(14) Не такая ему нужна
16 cw014
 
24.04.18
15:18
(14) Ему что-то типа такого надо:

ВЫБРАТЬ
    "Вася" КАК Поле1,
    "Федя" КАК Поле2,
    "Маша" КАК Поле25
ПОМЕСТИТЬ Табличка

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

ВЫБРАТЬ
    "Вася",
    "Федя",
    "Хорошая"
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    Табличка.Поле1,
    Табличка.Поле2,
    Табличка.Поле25[0] + Табличка.Поле25[1] КАК Поле3
ИЗ
    Табличка КАК Табличка

СГРУППИРОВАТЬ ПО
    Табличка.Поле1,
    Табличка.Поле2,
    Табличка.Поле25[0] + Табличка.Поле25[1]

Причем Табличка.Поле25[0] должно быть Табличка.Поле25, а
Табличка.Поле25[1] должно быть Табличка.Поле26
17 cw014
 
24.04.18
15:20
Хотя можно так:

ВЫБРАТЬ
    "Вася" КАК Поле1,
    "Федя" КАК Поле2,
    "Маша" КАК Поле25
ПОМЕСТИТЬ Табличка

ВЫБРАТЬ
    "Вася" КАК Поле1,
    "Федя" КАК Поле2,
    "Дура" КАК Поле26
ПОМЕСТИТЬ Табличка2
;

ВЫБРАТЬ
    Табличка.Поле1,
    Табличка.Поле2,
    Табличка.Поле25 + Табличка2.Поле26
ИЗ
    Табличка
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Табличка2
    ПО Табличка.Поле1 = Табличка2.Поле1
    И Табличка.Поле2 = Табличка2.Поле2
18 lEvGl
 
гуру
24.04.18
15:22
(17) ну да, не успел написать, чего мешает то не объединять и в разные сунуть
19 lEvGl
 
гуру
24.04.18
15:24
сопсно заголовок темы не соответствует проблеме
Основная теорема систематики: Новые системы плодят новые проблемы.