Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 дек 2024, 04:10

Группировка результата объединения 3х запросов

Автор Maick, 25 окт 2013, 13:10

0 Пользователей и 1 гость просматривают эту тему.

Maick

Здравствуйте! Меня зовут, Михаил. Я начинающий программист. Я пришел к вам за помощью.

Моя задача:

Вывести Итоги результата объединения трех запросов (Выбрать).

Поля первого запроса:


  • NULL КАК Поле 1
  • Строка КАК Поле 2
  • СУММА() КАК Поле 3
  • СУММА() КАК Поле 4
  • СУММА() КАК Поле 5
  • СУММА() КАК Поле 6
  • СУММА() КАК Поле 7

Поля второго и третьего запроса:


  • Дата КАК Поле 1
  • Строка КАК Поле 2
  • СУММА() КАК Поле 3
  • СУММА() КАК Поле 4
  • СУММА() КАК Поле 5
  • СУММА() КАК Поле 6
  • СУММА() КАК Поле 7

Различия только в Поле 1. В первом запросе я не получаю значения для Поле 1 (NULL для того, чтобы объединение было успешным), а в двух последних получаю.

Мне нужно получить Итоги результата объединения. Что-то вроде этого:


  • Дата КАК Поле 1
  • Строка КАК Поле 2
  • СУММА(Поле 3)
  • СУММА(Поле 4)
  • СУММА(Поле 5)
  • СУММА(Поле 6)
  • СУММА(Поле 7)

Учитывая что:

  • Количество строк возвращаемых в первом запросе может быть не равным количеству возвращаемых строк в двух последних. В этом случаи, я согласен на дублирующиеся строки, которые не найдены в двух последних запросах.

Мои неудачные варианты:


ИТОГИ
СУММА(Поле 3),
СУММА(Поле 4),
СУММА(Поле 5),
СУММА(Поле 6),
СУММА(Поле 7)
ПО
Поле 2



УПОРЯДОЧИТЬ ПО
Поле 1
ИТОГИ
СУММА(Поле 3),
СУММА(Поле 4),
СУММА(Поле 5),
СУММА(Поле 6),
СУММА(Поле 7),
СУММА(Поле 8)
ПО
ОБЩИЕ,
Поле 1,
Поле 2;


P.S. Поиском не пользовался. Потому что, не знаю как правильно спросить. Описал ситуацию в теме как есть.

Пожалуйста, подскажите, как мне решить свою задачу.

Besart

итоги по какому полю? группировка и итоги это не одно и то же

MuI_I_Ika

Запрос в студию. Непонятно как эти запросы объединяются.

Maick

Цитата: Besart от 25 окт 2013, 13:43
итоги по какому полю? группировка и итоги это не одно и то же

Группировать нужно по единственному заполненному полю, во всех запросах, Поле 2. Она типа Строка.
Добавлено: 25 окт 2013, 13:51


Цитата: MuI_I_Ika от 25 окт 2013, 13:44
Запрос в студию. Непонятно как эти запросы объединяются.


// запрос 1
ВЫБРАТЬ
NULL как Поле 1,
Строка как Поле 2,
Сумма() Поле 3,
Сумма() Поле 4,
Сумма() Поле 5,
Сумма() Поле 6,
Сумма() Поле 7
ИЗ
Таблица 1
СГРУППИРОВАТЬ ПО
Поле 2

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

// запрос 2
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(Дата, Год) как Поле 1,
Строка как Поле 2,
Сумма() Поле 3,
Сумма() Поле 4,
Сумма() Поле 5,
Сумма() Поле 6,
Сумма() Поле 7
ИЗ
Таблица 2
СГРУППИРОВАТЬ ПО
Поле 2,
НАЧАЛОПЕРИОДА(Поле 1, Год)

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

// запрос 3
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(Дата, Год) как Поле 1,
Строка как Поле 2,
Сумма() Поле 3,
Сумма() Поле 4,
Сумма() Поле 5,
Сумма() Поле 6,
Сумма() Поле 7
ИЗ
Таблица 3
СГРУППИРОВАТЬ ПО
Поле 2,
НАЧАЛОПЕРИОДА(Поле 1, Год)

Besart

запрос в ВТ (временная таблица), а потом уже в этой ВТ делайте группировку, а поле дата ставьте Макс или Мин

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск