- •8.1. Назначение. Основные объекты , предназначенные для организации запросов
- •Выполнение запроса
- •8.2. Язык запросов
- •Поля из вложенных таблиц
- •Псевдонимы источников как/as
- •Запросы к табличным частям
- •Вложенные запросы в списке источников
- •Конструкция соединение...По/join...On
- •Левое внешнее соединение
- •Правое внешнее соединение
- •Полное внешнее соединение
- •Логические операторы и, или, не
- •Параметры в языке запросов
- •Проверка вхождения значения в список (в/in)
- •Проверка ссылочного значения (ссылка/ref)
- •Проверка пустых значений (есть null / is null)
- •Сравнение строк (подобно / like)
- •Упорядочивание по иерархии
- •Упорядочивание во вложенных таблицах
- •Автоупорядочивание /autoorder
- •Агрегатные функции в запросе
- •Общие итоги
- •Итоги по группировкам
- •Итоги по иерархии
- •Несколько итогов в запросе
- •Встроенные функции языка запросов
- •Операции выбора в языке запросов (выбор / case)
- •Приведение типов в языке запросов
- •Литералы и параметры в языке запросов
- •8.4. Обработка результата запроса
- •8.5. Выборка из результата запроса
- •Линейный обход
- •Иерархический обход
- •Обход по группировкам
- •Другие полезные методы
- •8.6. Выгрузка результата запроса
- •8.7. Запросы к регистрам сведений
- •Основная таблица регистра сведений
- •8.8. Запросы к регистрам накопления
- •Основная таблица регистра накопления
- •Сводные таблицы
Итоги по иерархии
Если группировочное поле является ссылкой на справочник, то для расчета итогов по группам справочника (или родительским элементам, если справочник состоит из одних элементов) необходимо указать ключевое слово ИЕРАРХИЯ. В этом случае в результат будут добавлены записи с итогами для уровней иерархии справочника.
Например, выберем записи справочника Номенклатура, рассчитаем объем продаж по каждой позиции и по группам справочника:
ВЫБРАТЬ Номенклатура, Сумма
ИЗ РегистрНакопления.Продажи
ИТОГИ СУММА(Сумма) ПО Номенклатура ИЕРАРХИЯ
АВТОУПОРЯДОЧИВАНИЕ
Заметьте, что в результат запроса включены группы справочника, и по ним подсчитаны итоги:
Номенклатура |
Сумма |
Клавиатуры |
675 |
Клавиатура Apple Pro Keyboards |
600 |
Клавиатура Apple Pro Keyboards |
225 |
Клавиатура Apple Pro Keyboards |
375 |
Клавиатура Keyboard PS/2 |
75 |
Клавиатура Keyboard PS/2 |
25 |
Клавиатура Keyboard PS/2 |
50 |
Мониторы |
1460 |
Монитор 15' LG Studio works 575N |
620 |
Монитор 15' LG Studioworks 575N |
465 |
Монитор 15' LG Studioworks 575N |
155 |
Монитор 17' Philips 107S20 |
840 |
Монитор 17' Philips 107S20 |
840 |
Несколько итогов в запросе
В языке запросов допускается совместное использование различных итогов в одном запросе, например, общих, иерархических и итогов по группировкам.
Ниже представлен запрос, который выбирает данные из расходных накладных и дополнительно подсчитывает общие итоги, итоги по контрагентам, по каждому товару и группе товаров.
ВЫБРАТЬ
НаклСостав.Ссылка.Контрагент КАК Контрагент,
НаклСостав.Номенклатура КАК Номенклатура,
НаклСостав.Ссылка.Номер,
НаклСостав.Сумма КАК Продажи
ИЗ Документ.РасходнаяНакладная.Состав КАК НаклСостав
ИТОГИ СУММА (Продажи) ПО
ОБЩИЕ, Контрагент, Номенклатура ИЕРАРХИЯ
Контрагент |
Номенклатура |
Номер |
Продажи |
|
|
|
4520 |
Автохозяйство |
|
|
1 280 |
Автохозяйство |
Клавиатуры |
|
20 |
Автохозяйство |
Клавиатура LK-601 |
|
20 |
Автохозяйство |
Клавиатура LK-601 |
00023 |
20 |
Автохозяйство |
Мониторы |
|
1260 |
Автохозяйство |
Монитор 17' Philips |
|
210 |
Автохозяйство |
Монитор 17' Philips |
00023 |
210 |
Автохозяйство |
Монитор 19' Hitachi |
|
1050 |
Автохозяйство |
Монитор 19' Hitachi |
00023 |
1 050 |
Алекс-2002 |
|
|
3240 |
Алекс-2002 |
Клавиатуры |
|
3240 |
Алекс-2002 |
Клавиатура Apple Pro |
|
3225 |
Алекс-2002 |
Клавиатура Apple Pro |
00012 |
3000 |
Алекс-2002 |
Клавиатура Apple Pro |
00013 |
225 |
Алекс-2002 |
Клавиатура PS/2 |
|
15 |
Алекс-2002 |
Клавиатура PS/2 |
00008 |
15 |
Предложение ОБЪЕДИНИТЬ / UNION
В языке запросов имеется возможность объединять результаты несколько запросов, при этом записи, полученные с помощью каждого из объединяемых запросов, будут собраны в один результат запроса. При объединении каждый запрос собирает данные независимо, а такие операции, как упорядочивание результатов и расчет итогов, выполняются уже над результатом объединения запросов.
Поля результата запроса будут называться так, как описано в списке полей выборки первого из объединяемых запросов. Поля выборки остальных запросов сопоставляются с полями результата в соответствии с порядком их следования в списке полей выборки.
Объединяемые запросы должны иметь одинаковое количество полей в списке полей выборки. Если поля выборки объединяемых запросов имеют разный тип, то поля результата запроса будут иметь составной тип данных.
Пример, выберем проданные или купленные товары за определенный период:
ВЫБРАТЬ
НаклСостав.Номенклатура,
НаклСостав.Цена КАК Цена
ИЗ Документ.РасходнаяНакладная.Состав КАК НаклСостав
где НаклСостав.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
ОБЪЕДИНИТЬ
ВЫБРАТЬ
НаклСостав.Номенклатура,
НаклСостав.Цена
ИЗ Документ.ПриходнаяНакладная.Состав КАК НаклСостав
ГДЕ НаклСостав.Ссылка,Дата МЕЖДУ &НачДата И &КонДата
Дата |
Номенклатура |
Цена |
10.01.2002 |
Клавиатура Apple Pro Keyboards |
14 |
11.01.2002 |
Монитор 17" Philips 107S20 |
540 |
12.01.2002 |
Клавиатура Keyboard PS/2 |
12 |
Обратите внимание, что по умолчанию при объединении запросов полностью одинаковые строки, сформированные разными запросами, заменяются одной. Если требуется, чтобы были оставлены все одинаковые строки, необходимо указать ключевое слово ВСЕ.
Например, выберем проданные или купленные нами товары с указанием даты, цены покупки или цены продажи. Даже если для какого-то товара в определенный день совпадет цена покупки и цена продажи, то в запросе это все-таки будут две разные строки:
ВЫБРАТЬ
НаклСостав.Ссылка.Дата,
НаклСостав.Номенклатура,
НаклСостав.Цена КАК Цена
ИЗ Документ.РасходнаяНакладная.Состав КАК НаклСостав
ГДЕ НаклСостав.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
НаклСостав.Ссылка.Дата,
НаклСостав.Номенклатура,
НаклСостав.Цена
ИЗ Документ. ПриходнаяНакладная.Состав КАК НаклСостав
ГДЕ НаклСостав.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
Дата |
Номенклатура |
Цена |
10.01.2002 |
Клавиатура Apple Pro Keyboards |
14 |
10.01.2002 |
Клавиатура Apple Pro Keyboards |
14 |
11.01.2002 |
Монитор 17" Philips 107S20 |
540 |
12.01.2002 |
Клавиатура Keyboard PS/2 |
12 |
