Здравствуйте, помогоите, пожалуйста с текстом запроса.
Нужен отчет по продажам продавцов по товарным группам в виде:
Продавец МБТ КБТ .... Всего
Иванов_____5____ 4 ____ 59
Петров _____6 ____1 ____ 40
Сидоров ___4_____3_____ 5
Одним запросом никак не получается. Пытался сделать через Выбор следующим образом:
_______________________________________________________________________
Выбрать
ПродажиОбороты.Продавец
Выбор
Когда ПродажиОбороты.Номенклатура.Родитель.Наименование = "МБТ"
Тогда Сумма ПродажиОбороты.Количество
Выбор
Когда ПродажиОбороты.Номенклатура.Родитель.Наименование = "КБТ"
Тогда Сумма ПродажиОбороты.Количество
________________________________________________________________________
И так далее. Но результат выдает в виде:
Продавец МБТ КБТ .... Всего
Иванов___ 4
Иванов________ 5
Иванов ______________ 45
Петров __ 6
Петров ________3
Петров ______________ 34
А мне нужно одной строкой. Сделал через множество запросов, но отчет формируется уже полчаса, а конца краю не видно. Помогите, пожалуйста, вдруг кто знает.
И так далее. Но результат выдает в виде:
Продавец МБТ КБТ .... Всего
Иванов___ 4
Иванов________ 5
Иванов ______________ 45
Петров __ 6
Петров ________3
Петров ______________ 34
А мне нужно одной строкой. Сделал через множество запросов, но отчет формируется уже полчаса, а конца краю не видно. Помогите, пожалуйста, вдруг кто знает.
[/quote]
СГРУППИРОВАТЬ ПО
идея примерно следующая:
выбрать
Спр.продавец,
ЕСТЬNULL(МБТ.СуммаМБТ,0) КАК СуммаМБТ,
ЕСТЬNULL(КБТ.СуммаКБТ,0) КАК СуммаКБТ,
ЕСТЬNULL(МБТ.СуммаМБТ,0)+ЕСТЬNULL(КБТ.СуммаКБТ,0) КАК Итого
ИЗ
Справочник.Контрагенты КАК СПР ЛЕВОЕ СОЕДИНЕНИЕ
...(регистр продаж)... КАК МБТ ПО СПР.ХХХ=МБТ.ХХХ И ПродажиОбороты.Номенклатура.Родитель.Наименование = "МБТ" ЛЕВОЕ СОЕДИНЕНИЕ
...(регистр продаж)... КАК КБТ ПО СПР.ХХХ=КБТ.ХХХ И ПродажиОбороты.Номенклатура.Родитель.Наименование = "КБТ"
....
ГДЕ ЕСТЬNULL(МБТ.СуммаМБТ,0)+ЕСТЬNULL(КБТ.СуммаКБТ,0)<>0
ЗЫ. Если СуммаКБТ и МБТ - суммируемые, т.е. ты еще "СГРУППИРОВАТЬ ПО" делаешь, то "ВЫБРАТЬ" меняется на:
СУММА(МБТ.СуммаМБТ) КАК СуммаМБТ,
СУММА(КБТ.СуммаКБТ,0) КАК СуммаКБТ,
СУММА(МБТ.СуммаМБТ)+СУММА(КБТ.СуммаКБТ) КАК Итого
и вместо ИЗ подставить
ИМЕЮЩИЕ СУММА(МБТ.СуммаМБТ)+СУММА(КБТ.СуммаКБТ)<>0
1. посылай код запроса, а не только то что считаешь нужным
2. учи стандарт ANSI SQL 92 - пригодится на 8-ке!
Спасибо огромнейшее, понял как это должно быть, но тут же возникла новая проблема:
Суммы выводит неверные, посмотрел товары по продавцам, которые выводит запрос, получается вот так:
Допустим, иванов продал 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
Товары выбираю таким запросом:
Выбрать
Спр.продавец,
МБТ.Номенклатура,
КБТ.Номенклатура
ИЗ
Справочник.Продавцы КАК СПР ЛЕВОЕ СОЕДИНЕНИЕ
ПерсональныеПродажи.Обороты КАК МБТ ПО СПР.Продавец=МБТ.Продавец И МБТ.Номенклатура.Родитель.Наименование = "МБТ" ЛЕВОЕ СОЕДИНЕНИЕ
ПерсональныеПродажи.Обороты КАК КБТ ПО СПР.Продавец=КБТ.Продавец И ПродажиОбороты.Номенклатура.Родитель.Наименование = "КБТ"
СГРУППИРОВАТЬ ПО Спр.Продавец
А результаты продаж по товарам вот таким:
Выбрать
Спр.продавец,
Сумма (МБТ.КоличествоОборот),
Сумма(КБТ.КоличествоОборот)
ИЗ
Справочник.Продавцы КАК СПР ЛЕВОЕ СОЕДИНЕНИЕ
ПерсональныеПродажи.Обороты КАК МБТ ПО СПР.Продавец=МБТ.Продавец И МБТ.Номенклатура.Родитель.Наименование = "МБТ" ЛЕВОЕ СОЕДИНЕНИЕ
ПерсональныеПродажи.Обороты КАК КБТ ПО СПР.Продавец=КБТ.Продавец И ПродажиОбороты.Номенклатура.Родитель.Наименование = "КБТ"
СГРУППИРОВАТЬ ПО Спр.Продавец
Что тут неправильно, подскажите?
Грубо говоря выводит (Иванов) X (Фен1, Фен2) X (холодильник1, холодильник2, холодильник3). Черт с ними товарами, посоветуйте хотя бы, как в каждой колонке сумму продаж по каждой категории сделать.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.