Имя: Пароль:
1C
 
Как сгруппировать записи в таблице
0 Parallels
 
19.09.14
09:14
Пусть исходная таблица имеет вид:
+-----+------+
| a1  |  s1  |
| a2  |  s2  |
| a1  |  s3  |
| a2  |  s4  |
+------------+
Количество строк, разумеется, произвольное.

Нужно запросом получить результирующую таблицу вида:

+-----+------+
|  a1 | s1+s3|
|  a2 | s2+s4|
+------------+

Можно ли это реализовать в 1с?
1 ДенисЧ
 
19.09.14
09:15
ТипЗнч(sN) ?
2 Parallels
 
19.09.14
09:16
a - ссылка на элемент справочника.
s - строковые значения.
3 ДенисЧ
 
19.09.14
09:17
Тогда запросом в дерево, потом обходить циклом.
4 Балоун
 
19.09.14
09:17
разрешаю
5 Балоун
 
19.09.14
09:18
ах, запросом. запрещаю
6 Parallels
 
19.09.14
09:20
(3) Это нужно в макете схемы компоновки данных отчета реализовать.
7 Alex S D
 
19.09.14
09:22
формируешь таблицу.. передаешь в скд..
8 Балоун
 
19.09.14
09:23
(6) ах, СКД. разрешаю
9 Parallels
 
19.09.14
09:24
(8) еще бы примерчик на sql
10 Балоун
 
19.09.14
09:24
(9) зачем?
11 Parallels
 
19.09.14
09:25
(10) чтобы был.
12 Балоун
 
19.09.14
09:25
хорошо. примерчик чего?
13 Parallels
 
19.09.14
09:26
как sql запросом получить из исходной таблицы результирующую (в шапке темы)
14 Балоун
 
19.09.14
09:27
(13) вроде бы на такое способны только некоторые диалекты SQL
15 Ymryn
 
19.09.14
09:28
(0) СоединитьСтроки() вам в помощь в качестве функции расчета выражения.
16 Parallels
 
19.09.14
09:28
И что же делать?
17 ДенисЧ
 
19.09.14
09:28
А SQL тут при чём? СКД сама умеет такое...
18 Балоун
 
19.09.14
09:28
(16) не выходить за рамки СКД
19 Ymryn
 
19.09.14
09:30
(15) + естественно работает только в СКД. В чистом запросе вы это не получите.
20 Teresa
 
19.09.14
09:33
а ВычислитьВыражение() не подойдет?
21 Parallels
 
19.09.14
09:36
Ладно, спасибо. Попробую разобраться с этой скд.
Хотя, конечно, тупость, что нет такой нужной агрегатной функции.
22 ДенисЧ
 
19.09.14
09:39
(21) Тупость - это требовать от запроса вещей, для которых он не предназначен.
Иначе в следующий раз ты захочешь документы складывать. Или справочники...
23 Балоун
 
19.09.14
09:40
тупость, конечно. итоги очень хорошо считать
24 Parallels
 
19.09.14
09:43
(22) существует же функция сумма() для чисел. Почему бы не реализовать такую для строк?
25 Ymryn
 
19.09.14
09:46
(24) в СКД она есть, выше указана. В запросе, с ней проблемы, ибо запрос потом транслируется. И насколько мне известно далеко не все СУБД, куда идет трансляция поддерживают этот функционал. Да и складывать строчки в запросе - это все-таки кроме отчетов обычно и не нужно, а для отчетов есть СКД.
26 ДенисЧ
 
19.09.14
09:51
(24) Потом для документов и справочников.
Напоследок оставим двоичные данные и бизнес-процессы.
27 Parallels
 
19.09.14
09:55
(26) почему бы нет. Если придумать способ сложения справочников и документов.
28 Балоун
 
19.09.14
09:56
кто тут путает сложение с конкатенацией?
29 AntiBuh
 
19.09.14
10:00
(24) думаю это идет от того, что для чисел последовательность при сложении пох, а для строк слегка не пох
будешь потом капризничать - не правильно объединило
30 Parallels
 
19.09.14
10:03
(29) Далеко не всегда. Мне, например, нужно получить список инвентарных номеров для групповых карточек основных средств одной строкой. И последовательность значения не имеет.
31 Teresa
 
19.09.14
10:05
(30) Зачем они нужны одной строкой? получайте массив и собирайте его потом в строку. Зачем это в запросе делать - непонятно. Сказали уже - запрос не предназначен для таких вещей.
32 Балоун
 
19.09.14
10:35
(30) пятый параметр у СоединитьСтроки - пох
33 AntiBuh
 
19.09.14
10:47
(30) это вот в конкретном случае не имеет, а завтра понадобится чтоб по порядку или еще как шли