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

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

Объединение запросов, чтобы в каждом были итоги

Объединение запросов, чтобы в каждом были итоги
Я
   alexio_alexio
 
02.10.16 - 13:21
Можно ли как-то написать в одном запросе объединение запросов, чтобы в каждом из запросов была своя секция итогов? Поясню на примере: надо получить количество и стоимость в рядом стоящих строках по складам и номенклатуре из РН "Товары на складах" (тут берем количество) и "Партии товаров на складах" (тут берем стоимость), причем итоги тоже надо считать отдельно по количеству и стоимости. Вот примерный (неправильный, т.к. в объединении запросов итоги следуют для результата объединения) код:

ВЫБРАТЬ
    ТоварыНаСкладахОбороты.Склад КАК Склад,
    ТоварыНаСкладахОбороты.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОбороты.КоличествоОборот КАК КоличествоОборот,
    ТоварыНаСкладахОбороты.КоличествоПриход КАК КоличествоПриход,
    ТоварыНаСкладахОбороты.КоличествоРасход КАК КоличествоРасход
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты КАК ТоварыНаСкладахОбороты
ИТОГИ
    СУММА(КоличествоОборот),
    СУММА(КоличествоПриход),
    СУММА(КоличествоРасход)
ПО
    ОБЩИЕ,
    Склад

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

ВЫБРАТЬ
    ПартииТоваровНаСкладахОбороты.Склад,
    ПартииТоваровНаСкладахОбороты.Номенклатура,
    ПартииТоваровНаСкладахОбороты.СтоимостьОборот,
    ПартииТоваровНаСкладахОбороты.СтоимостьПриход,
    ПартииТоваровНаСкладахОбороты.СтоимостьРасход
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Обороты КАК ПартииТоваровНаСкладахОбороты
ИТОГИ
    СУММА(СтоимостьОборот),
    СУММА(СтоимостьПриход),
    СУММА(СтоимостьРасход)
ПО
    ОБЩИЕ,
    Склад

Если использовать вирт. таблицы или вложенные запросы тоже вроде не получается нужное или я не прав? Конечно же приходит на ум выгрузить каждый из запросов в ТЗ и потом работать с ней. Но может есть возможность записать в одном запросе нужное без использования ТЗ?
 
 
   alexio_alexio
 
1 - 02.10.16 - 13:22
(0) ТЗ-таблица значений
   DailyLookingOnASunse
 
2 - 02.10.16 - 13:48
Это надо?

ИТОГИ
    СУММА(КоличествоОборот),
    СУММА(КоличествоПриход),
    СУММА(КоличествоРасход)
    0,
    0,
    0
ОБЪЕДИНИТЬ ВСЕ

ИТОГИ
    0,
    0,
    0,
    СУММА(СтоимостьОборот),
    СУММА(СтоимостьПриход),
    СУММА(СтоимостьРасход)
   DailyLookingOnASunse
 
3 - 02.10.16 - 13:49
Ну и объединение завернуть во вложенный запрос или временную таблицу и сгруппировать.
   vvp91
 
4 - 02.10.16 - 13:53
Вариант 1:
ВЫБРАТЬ
    ТТ.Склад КАК Склад,
    ТТ.Номенклатура КАК Номенклатура,
    ТТ.КоличествоОборот КАК КоличествоОборот,
    ТТ.КоличествоПриход КАК КоличествоПриход,
    ТТ.КоличествоРасход КАК КоличествоРасход,
    0. КАК СтоимостьОборот,
    0. КАК СтоимостьПриход,
    0. КАК СтоимостьРасход
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты КАК ТТ

ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
    ТТ.Склад,
    ТТ.Номенклатура,
    0. КАК КоличествоОборот,
    0. КАК КоличествоПриход,
    0. КАК КоличествоРасход,
    ТТ.СтоимостьОборот,
    ТТ.СтоимостьПриход,
    ТТ.СтоимостьРасход
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Обороты КАК ТТ

ИТОГИ
    СУММА(КоличествоОборот),
    СУММА(КоличествоПриход),
    СУММА(КоличествоРасход),
    СУММА(СтоимостьОборот),
    СУММА(СтоимостьПриход),
    СУММА(СтоимостьРасход)
ПО
    ОБЩИЕ,
    Склад


Вариант 2:
ВЫБРАТЬ
    ТТ.Склад КАК Склад,
    "КОЛИЧЕСТВО" КАК ТипИтогов,
    ТТ.Номенклатура КАК Номенклатура,
    ТТ.КоличествоОборот КАК Оборот,
    ТТ.КоличествоПриход КАК Приход,
    ТТ.КоличествоРасход КАК Расход,
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты КАК ТТ

ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
    ТТ.Склад,
    "СТОИМОСТЬ" КАК ТипИтогов,
    ТТ.Номенклатура,
    ТТ.СтоимостьОборот КАК Оборот,
    ТТ.СтоимостьПриход КАК Приход,
    ТТ.СтоимостьРасход КАК Расход
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Обороты КАК ТТ

ИТОГИ
    СУММА(Оборот),
    СУММА(Приход),
    СУММА(Расход)
ПО
    ОБЩИЕ,
    Склад,
    ТипИтогов

   alexio_alexio
 
5 - 02.10.16 - 14:03
(4) вариант 1: но получаем же 6 количественно-суммовых столбцов вместо нужных 3-х?
   alexio_alexio
 
6 - 02.10.16 - 14:04
(5) т.е. получаете полное соединение
   vvp91
 
7 - 02.10.16 - 14:10
(6) Какое "полное соединение"?
Матчасть здесь - https://ru.wikipedia.org/wiki/Join_(SQL)#FULL_OUTER_JOIN
   alexio_alexio
 
8 - 02.10.16 - 14:16
(4) вариант 2: вот за это спасибо, где почитать про конструкцию:
ВЫБРАТЬ
...
"КОЛИЧЕСТВО" КАК ТипИтогов,
...
ПО
    ...
   ТипИтогов ?
   mistеr
 
9 - 02.10.16 - 14:18
(0) Объединение выполняется в базе, итоги считаются после этого в платформе. Вопрос исчерпан?

Осваивай СКД и считай что угодно и как угодно.
   alexio_alexio
 
10 - 02.10.16 - 14:19
(4) вариант 2: вот за это спасибо, где почитать про конструкцию:
 
ВЫБРАТЬ 
...
"КОЛИЧЕСТВО" КАК ТипИтогов,
... 
ПО 
    ... 
   ТипИтогов
?
 
 Рекламное место пустует
   alexio_alexio
 
11 - 02.10.16 - 14:20
(9) дорабатываю отчет на базе универсального
   alexio_alexio
 
12 - 02.10.16 - 14:25
(10) хотя вроде понял, это просто искусственное добавление поля, чтобы потом удобно использовать в итогах?

Список тем форума
Рекламное место пустует  Рекламное место пустует
AdBlock убивает бесплатный контент. 1Сергей
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует