Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите с запросом
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 8.x" > (8.х) Конфигурирование на платформе "1С:Предприятие 8.x"
Noob
Здравствуйте, помогоите, пожалуйста с текстом запроса.

Нужен отчет по продажам продавцов по товарным группам в виде:

Продавец МБТ КБТ .... Всего
Иванов_____5____ 4 ____ 59
Петров _____6 ____1 ____ 40
Сидоров ___4_____3_____ 5

Одним запросом никак не получается. Пытался сделать через Выбор следующим образом:

_______________________________________________________________________
Выбрать
ПродажиОбороты.Продавец

Выбор
Когда ПродажиОбороты.Номенклатура.Родитель.Наименование = "МБТ"
Тогда Сумма ПродажиОбороты.Количество

Выбор
Когда ПродажиОбороты.Номенклатура.Родитель.Наименование = "КБТ"
Тогда Сумма ПродажиОбороты.Количество
________________________________________________________________________

И так далее. Но результат выдает в виде:

Продавец МБТ КБТ .... Всего
Иванов___ 4
Иванов________ 5
Иванов ______________ 45
Петров __ 6
Петров ________3
Петров ______________ 34

А мне нужно одной строкой. Сделал через множество запросов, но отчет формируется уже полчаса, а конца краю не видно. Помогите, пожалуйста, вдруг кто знает.
solt


И так далее. Но результат выдает в виде:

Продавец МБТ КБТ .... Всего
Иванов___ 4
Иванов________ 5
Иванов ______________ 45
Петров __ 6
Петров ________3
Петров ______________ 34

А мне нужно одной строкой. Сделал через множество запросов, но отчет формируется уже полчаса, а конца краю не видно. Помогите, пожалуйста, вдруг кто знает.
[/quote]


СГРУППИРОВАТЬ ПО
dlednev
идея примерно следующая:
выбрать
Спр.продавец,
ЕСТЬNULL(МБТ.СуммаМБТ,0) КАК СуммаМБТ,
ЕСТЬNULL(КБТ.СуммаКБТ,0) КАК СуммаКБТ,
ЕСТЬNULL(МБТ.СуммаМБТ,0)+ЕСТЬNULL(КБТ.СуммаКБТ,0) КАК Итого
ИЗ
Справочник.Контрагенты КАК СПР ЛЕВОЕ СОЕДИНЕНИЕ
...(регистр продаж)... КАК МБТ ПО СПР.ХХХ=МБТ.ХХХ И ПродажиОбороты.Номенклатура.Родитель.Наименование = "МБТ" ЛЕВОЕ СОЕДИНЕНИЕ
...(регистр продаж)... КАК КБТ ПО СПР.ХХХ=КБТ.ХХХ И ПродажиОбороты.Номенклатура.Родитель.Наименование = "КБТ"

....
ГДЕ ЕСТЬNULL(МБТ.СуммаМБТ,0)+ЕСТЬNULL(КБТ.СуммаКБТ,0)<>0

ЗЫ. Если СуммаКБТ и МБТ - суммируемые, т.е. ты еще "СГРУППИРОВАТЬ ПО" делаешь, то "ВЫБРАТЬ" меняется на:
СУММА(МБТ.СуммаМБТ) КАК СуммаМБТ,
СУММА(КБТ.СуммаКБТ,0) КАК СуммаКБТ,
СУММА(МБТ.СуммаМБТ)+СУММА(КБТ.СуммаКБТ) КАК Итого

и вместо ИЗ подставить
ИМЕЮЩИЕ СУММА(МБТ.СуммаМБТ)+СУММА(КБТ.СуммаКБТ)<>0

1. посылай код запроса, а не только то что считаешь нужным
2. учи стандарт ANSI SQL 92 - пригодится на 8-ке!
Noob
Спасибо огромнейшее, понял как это должно быть, но тут же возникла новая проблема:

Суммы выводит неверные, посмотрел товары по продавцам, которые выводит запрос, получается вот так:

Допустим, иванов продал 1 фен из МБТ и пять холодильников из КБТ
Результат:

Иванов Холодильник1 Фен1
Иванов Холодильник2 Фен1
Иванов Холодильник3 Фен1
Иванов Холодильник4 Фен1
Иванов Холодильник5 Фен1

В итоге получается 5 холодильников(правильно) и 5 фенов(не ясно откуда)

Если же он продал два фена получаем:

Иванов Холодильник1 Фен1
Иванов Холодильник1 Фен2
Иванов Холодильник2 Фен1
Иванов Холодильник2 Фен2
Иванов Холодильник3 Фен1
Иванов Холодильник3 Фен2

И так далее, что совсем не соответствует истине.
Как с этим бороться, чтобы выводило хотя бы в виде:

Иванов Холодильник1 Фен1 Что-тоЕще1
Иванов Холодильник2 ______ Что-тоЕще2
Иванов Холодильник3 ______ Что-тоЕще3
Иванов Холодильник4 ______ Что-тоЕще4
Иванов _________________ Что-тоЕще5
Noob
Товары выбираю таким запросом:

Выбрать
Спр.продавец,
МБТ.Номенклатура,
КБТ.Номенклатура

ИЗ
Справочник.Продавцы КАК СПР ЛЕВОЕ СОЕДИНЕНИЕ
ПерсональныеПродажи.Обороты КАК МБТ ПО СПР.Продавец=МБТ.Продавец И МБТ.Номенклатура.Родитель.Наименование = "МБТ" ЛЕВОЕ СОЕДИНЕНИЕ
ПерсональныеПродажи.Обороты КАК КБТ ПО СПР.Продавец=КБТ.Продавец И ПродажиОбороты.Номенклатура.Родитель.Наименование = "КБТ"

СГРУППИРОВАТЬ ПО Спр.Продавец
Noob
А результаты продаж по товарам вот таким:

Выбрать
Спр.продавец,
Сумма (МБТ.КоличествоОборот),
Сумма(КБТ.КоличествоОборот)

ИЗ
Справочник.Продавцы КАК СПР ЛЕВОЕ СОЕДИНЕНИЕ
ПерсональныеПродажи.Обороты КАК МБТ ПО СПР.Продавец=МБТ.Продавец И МБТ.Номенклатура.Родитель.Наименование = "МБТ" ЛЕВОЕ СОЕДИНЕНИЕ
ПерсональныеПродажи.Обороты КАК КБТ ПО СПР.Продавец=КБТ.Продавец И ПродажиОбороты.Номенклатура.Родитель.Наименование = "КБТ"

СГРУППИРОВАТЬ ПО Спр.Продавец


Что тут неправильно, подскажите?
Noob
Грубо говоря выводит (Иванов) X (Фен1, Фен2) X (холодильник1, холодильник2, холодильник3). Черт с ними товарами, посоветуйте хотя бы, как в каждой колонке сумму продаж по каждой категории сделать.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2009 Invision Power Services, Inc.