Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Объединение строк в запросе
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
ZenBi
Здравствуйте!
Нужна помощь!
Есть таблица(пример):
Группа - Кол.Человек. - Выработка час.
Група1 - 15 - 22
Група2 - 21 - 20
Група3 - 8 - 18
група4 - 11 - 27


После формирования запроса в ОТЧЕТЕ надо как-то вывести результат(пример):
Група1+Група3 - 23 - 40
Група2 - 21 - 20
Група4 - 11 - 27


И вот вопрос - Как сгрупировать строки 1 и 3?? и сделать это нужно как-то именно в запросе, сам запрос создается для формирования отчета простроеного в СКД(совершенно магическая система не связанная с программированием).
Batchir
Если Група1 это справочник, то попробуйте использовать иерархию или какой-то объединяющий их реквизит

ВЫБРАТЬ
    "Група1+Група3" КАК РодительГруппы,
    "Група1" КАК Группа,
    15 КАК КолвоЧеловек,
    22 КАК Выработка
ПОМЕСТИТЬ ВТ

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

ВЫБРАТЬ
    NULL,
    "Група2",
    21,
    20

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

ВЫБРАТЬ
    "Група1+Група3",
    "Група3",
    8,
    18

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

ВЫБРАТЬ
    NULL,
    "Група4",
    11,
    27
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЕСТЬNULL(ВТ.РодительГруппы, ВТ.Группа) КАК Поле1,
    СУММА(ВТ.КолвоЧеловек) КАК КолвоЧеловек,
    СУММА(ВТ.Выработка) КАК Выработка
ИЗ
    ВТ КАК ВТ

СГРУППИРОВАТЬ ПО
    ЕСТЬNULL(ВТ.РодительГруппы, ВТ.Группа)
ZenBi
Batchir @ Сегодня, 9:28 необходимо зарегистрироваться для просмотра ссылки ,
Возможно я немного неправильно пояснил.
Имя поля в БД "Группа" - это ссылка на справочник "группы" (как напремер "подразделения организации" в УПП или чем-то подобном )

а "Группа1" и "Группа2" это наименования элемента в этом справочнике. Но все равно спасибо. Не ожидал что кто-то ответит в суботу.

И да я человек не далёкий и в программировании плаваю не глубоко потому попрошу объяснять как для умственно отсталого.
Batchir
Я Вас прекрасно понял. Для того что бы в запросе что-либо сгруппировать, необходимо иметь это поле по которому можно группировать

Вы привели пример на "кубиках", я и привел так же для примера запрос, в котором для "Група1" и "Група3" есть общее поле с наименованием "Група1+Група3"
В "Група2" и "Група4" оно равно NULL.
Далее в запросе проверяем что если заполнено объединяющее поле, то используем его для получения итогов. Если не заполнено, то используем поле Группа.

Возможно если бы Вы привели точный пример запроса, то и ответ получили бы более точный)
ZenBi
Batchir @ 25.10.21, 12:53 необходимо зарегистрироваться для просмотра ссылки ,
Здравствуйте. Спасибо за помощь. Простите, что поздно отписал. С задачей справился пусть и пришлось изгалятся.
Просто сделал несколько запросов:
1 - Запрос выбирает все значения "Группы1"
2 - Запрос выбирает все значения "Группы3"
3 - Объеденяем оба результата запроса в одну таблицу.
4 - Выбираем все "Группы" кроме 1 и 3

А в отчете выводим отдельно результат 3-го запроса (сумарную таблице двух групп) как "Группа1+Группа3" и отдельно же "Группы" из запроса "4".
Надеюсь обяснил относительно понятно. Но в итоге получил то что и хотел. Кстати оказалось что передать значение параметра в запрос как поле запроса(таблицы) можно просто добавив в отобранные запросом поля "&Параметр".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.