Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Как в запросе получить соединенное поле тип строка?

Как в запросе получить соединенное поле тип строка?
Я
   Arutynov
 
23.04.18 - 16:25
Здравствуйте. Вопрос по запросу
имеем:

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

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

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

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

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

Допустим

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

Должно стать

Поле 1, Поле2, Поле25 + Поле26
Поле 3, Поле4, Поле27
   Arutynov
 
4 - 23.04.18 - 16:38
(2) извиняюсь, но не очень понял как я это сделаю
   RomanYS
 
5 - 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
   Buster007
 
7 - 23.04.18 - 16:48
(6) на уровень Гения1С претендуешь?)
   Arutynov
 
8 - 24.04.18 - 08:05
Спасибо, сейчас по разбираюсь.
   catena
 
9 - 24.04.18 - 08:52
(6)Оно не так хочет. Оно хочет агрегатную функцию для строк.
   catena
 
10 - 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) И ? на выходе так и будет ))))
   cw014
 
13 - 24.04.18 - 15:02
(12) Ему сгруппировать надо, но вместо агрегатной функции конкатенацию строк нужно
   lEvGl
 
14 - 24.04.18 - 15:10
чем не конкатенация в (6)
   cw014
 
15 - 24.04.18 - 15:16
(14) Не такая ему нужна
   cw014
 
16 - 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
   cw014
 
17 - 24.04.18 - 15:20
Хотя можно так:

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует