Как в запросе сгруппировать текстовые строки сложением?

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. TimofeySin 167 17.07.13 17:14 Сейчас в теме
ну то есть делаю какой-то запрос
Выбрать
 Справочник.Ссылка как ПредставлениеСправочника,
 Справочник.Текст как Текст
из Справочник.Любой как Справочник

Получаю

таблицу ПредставлениеСправочника      Текст
        ПредставлениеСправочника      Ля
        ПредставлениеСправочника      Тр
        ПредставлениеСправочника      А
        ПредставлениеСправочника      Ля


Как мне из нее сделать таблицу
ПредставлениеСправочника      Текст
ПредставлениеСправочника      ЛяТрАЛЯ
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. AllexSoft 17.07.13 17:15 Сейчас в теме
(1) TimofeySin, в запросе никак по всей видимости...
9. ildarovich 7865 18.07.13 09:07 Сейчас в теме
(2)(5)(8) Знаю два способа, только вот тексты запросов довольно громоздкие и работают эти способы когда агрегатно-конкатенируемые строки пронумерованы, а их число ограничено.
10. ildarovich 7865 18.07.13 09:54 Сейчас в теме
(9) Вот первый, более простой способ, рассчитанный на относительно небольшое число конкатенируемых строк. Если строки четыре, то запрос может иметь вид
ВЫБРАТЬ
	МАКСИМУМ(ВЫБОР Дано.НомерСтроки
			КОГДА 1
				ТОГДА Дано.Подстрока
			ИНАЧЕ ""
		КОНЕЦ) + МАКСИМУМ(ВЫБОР Дано.НомерСтроки
			КОГДА 2
				ТОГДА Дано.Подстрока
			ИНАЧЕ ""
		КОНЕЦ) + МАКСИМУМ(ВЫБОР Дано.НомерСтроки
			КОГДА 3
				ТОГДА Дано.Подстрока
			ИНАЧЕ ""
		КОНЕЦ) + МАКСИМУМ(ВЫБОР Дано.НомерСтроки
			КОГДА 4
				ТОГДА Дано.Подстрока
			ИНАЧЕ ""
		КОНЕЦ) КАК Ответ
ИЗ
	Дано КАК Дано
Показать
Прилагается обработка для проверки данного запроса и скриншот результата ее работы.
Прикрепленные файлы:
ПростаяАгрегатнаяКонкатенация.erf
maksa2005; pyrkin_vanya; It-developer; ixijixi; +4 Ответить
5. beldieff 17.07.13 17:28 Сейчас в теме
(1) TimofeySin,
ПредставлениеСправочника Текст
ПредставлениеСправочника ЛяТрАЛЯ


Только кодом.
3. TimofeySin 167 17.07.13 17:20 Сейчас в теме
А в СКД без переопределения кнопки Сформировать в отчете?
4. ssa 17.07.13 17:27 Сейчас в теме
Мне кажется и в СКД не получится.
6. TimofeySin 167 17.07.13 17:37 Сейчас в теме
Я нашел в вычисляемых полях такой оператор:
Строка() - Если в качестве параметра передан массив, то функция возвращает строку, содержащую строковые представления всех элементов массива, разделенных символами "; ". Если в качестве параметра передана таблица значений, то функция возвращает строку, содержащую строковые представления всех строк таблицы значений, причем представления ячеек каждой строки разделяются символами "; ", а строки — смиволом перевода строки. Если у какого либо элемента строковое представление пустое, то вместо его представления выводится строка.

Но вот как мне ему передать массив? и то ли это...
7. AllexSoft 17.07.13 21:24 Сейчас в теме
(6) TimofeySin, не парься, обработай программно, это проще
8. TimofeySin 167 18.07.13 08:54 Сейчас в теме
11. TimofeySin 167 18.07.13 12:00 Сейчас в теме
Это если ты знаешь сколько строк надо объединить а если их от 2 до 200?
Кто-нибудь знает как пользоваться агрегатными функциями:
МАССИВ (ARRAY)

Функция возвращает массив, содержащий для каждой детальной записи значение параметра. Если выражение, указанное в параметре, содержит функциюМассив, то считается, что данное выражение является агрегатным. В качестве параметра для функции указывается выражение произвольного типа.  

В качестве параметра может быть указано выражение, возвращающее таблицу значений. При этом результатом работы функции Массив будет массив, содержащий значения первой колонки таблицы значений, переданной в качестве параметра. 

МАССИВ(КоличествоПредложений)

ТАБЛИЦАЗНАЧЕНИЙ (VALUETABLE)

Функция возвращает таблицу значений, содержащую столько колонок, сколько параметров у функции. Детальные записи получаются из наборов данных, которые нужны для получения всех полей, участвующих в выражениях параметров функции. Если выражение содержит функцию ТаблицаЗначений, то считается, что данное выражение является агрегатным. 

У функции может быть один или несколько параметров произвольного типа. После каждого параметра может располагаться необязательное ключевое слово КАК и имя, которое будет назначено колонке таблицы значений. 
СОЕДИНИТЬСТРОКИ (JOINSTRINGS)

Агрегатная функция, позволяющая объединять строки в одну строку.

Параметры:

● Значения, которые нужно объединить в одну строку. Если является массивом, то в строку будут объединяться элементы массива. Если является таблицей значений, то в строку будут объединяться все колонки и строки таблицы.

● Разделитель элементов. Строка, содержащая текст, который нужно использовать в качестве разделителя между элементами массива и строками таблицы значений. По умолчанию – символ перевода строк.

● Разделители колонок. Строка, содержащая текст, который нужно использовать в качестве разделителя между колонками таблицы значений. По умолчанию «; » 
Показать


PS Отсюда взял http://langslab.com/ebooks/skd/skd/skd82
12. TimofeySin 167 18.07.13 14:19 Сейчас в теме
Получилось!!! В СКД в ресурсах есть функция СОЕДИНИТЬСТРОКИ() они и соединяет все строки по группированному полю!!!!
delphiman4@gmail.com; v3rter; It-developer; user901186; user868806; sstas007; madonov; LaNaite; zala; ssa; AllexSoft; +11 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот