Имя: Пароль:
1C
1С v8
Запрос по продажам, группировка по % наценки
0 Чинандалар Бонг
 
26.04.12
21:52
Пытаюсь получить отчет по продажам в котором товары будут сгруппированы по % наценки. Запрос:
ВЫБРАТЬ
   ПродажиОбороты.Номенклатура КАК Номенклатура,
   ПродажиОбороты.Подразделение КАК Подразделение,
   СРЕДНЕЕ(ВЫРАЗИТЬ(ВЫБОР
               КОГДА ПродажиСебестоимостьОбороты.СтоимостьОборот ЕСТЬ NULL
                   ТОГДА 0
               ИНАЧЕ ПродажиОбороты.СтоимостьОборот - ПродажиСебестоимостьОбороты.СтоимостьОборот / ПродажиСебестоимостьОбороты.СтоимостьОборот * 100
           КОНЕЦ КАК ЧИСЛО(15, 0))) КАК Наценка,
   СУММА(ПродажиОбороты.КоличествоОборот) КАК Количество
ИЗ
   РегистрНакопления.Продажи.Обороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), Авто, ) КАК ПродажиОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость.Обороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), Авто, ) КАК ПродажиСебестоимостьОбороты
       ПО ПродажиОбороты.Номенклатура = ПродажиСебестоимостьОбороты.Номенклатура
           И ПродажиОбороты.Подразделение = ПродажиСебестоимостьОбороты.Подразделение

СГРУППИРОВАТЬ ПО
   ПродажиОбороты.Номенклатура,
   ПродажиОбороты.Подразделение,
   ВЫРАЗИТЬ(ВЫБОР
           КОГДА ПродажиСебестоимостьОбороты.СтоимостьОборот ЕСТЬ NULL
               ТОГДА 0
           ИНАЧЕ ПродажиОбороты.СтоимостьОборот - ПродажиСебестоимостьОбороты.СтоимостьОборот / ПродажиСебестоимостьОбороты.СтоимостьОборот * 100
       КОНЕЦ КАК ЧИСЛО(15, 0))

УПОРЯДОЧИТЬ ПО
   Подразделение,
   Номенклатура

Все выводит, группирует, но % наценки считается неправильно, какие то отрицательные значения или слишком большие. В реальности таких нет, проверил. Почему так?
1 Рэйв
 
26.04.12
21:58
ты если СРЕДНЕЕ(
написал в полях.
Будь добр в группировках тоже
2 PR
 
26.04.12
21:59
(0) Бредос

ВЫБРАТЬ
   ПродажиОбороты.Номенклатура КАК Номенклатура,
   ПродажиОбороты.Подразделение КАК Подразделение,
   ВЫРАЗИТЬ(ВЫБОР
               КОГДА СУММА(ПродажиСебестоимостьОбороты.СтоимостьОборот) ЕСТЬ NULL
                   ТОГДА 0
               ИНАЧЕ СУММА(ПродажиОбороты.СтоимостьОборот) - СУММА(ПродажиСебестоимостьОбороты.СтоимостьОборот) / СУММА(ПродажиСебестоимостьОбороты.СтоимостьОборот) * 100
           КОНЕЦ КАК ЧИСЛО(15, 0)) КАК Наценка,
   СУММА(ПродажиОбороты.КоличествоОборот) КАК Количество
ИЗ
   РегистрНакопления.Продажи.Обороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), Авто, ) КАК ПродажиОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость.Обороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), Авто, ) КАК ПродажиСебестоимостьОбороты
       ПО ПродажиОбороты.Номенклатура = ПродажиСебестоимостьОбороты.Номенклатура
           И ПродажиОбороты.Подразделение = ПродажиСебестоимостьОбороты.Подразделение

СГРУППИРОВАТЬ ПО
   ПродажиОбороты.Номенклатура,
   ПродажиОбороты.Подразделение,
   ВЫРАЗИТЬ(ВЫБОР
           КОГДА ПродажиСебестоимостьОбороты.СтоимостьОборот ЕСТЬ NULL
               ТОГДА 0
           ИНАЧЕ ПродажиОбороты.СтоимостьОборот - ПродажиСебестоимостьОбороты.СтоимостьОборот / ПродажиСебестоимостьОбороты.СтоимостьОборот * 100
       КОНЕЦ КАК ЧИСЛО(15, 0))

УПОРЯДОЧИТЬ ПО
   Подразделение,
   Номенклатура
3 Чинандалар Бонг
 
26.04.12
22:03
(2) то жде самое, только СРЕДНЕЕ убрал?   Результат тот же, все равно фигню выдает
4 КМ155
 
26.04.12
22:05
(3) а зачем тебе группировка по товару и подразделению, если по ним нет групповых функций ?

ты сначала табличку нарисуй с ожидаемым результатом
5 Рэйв
 
26.04.12
22:05
(3)Тогда смотри параметры. Все зло в них:-)))
6 Чинандалар Бонг
 
26.04.12
22:09
такая табличка должна быть


Наценка                                    Количество
Номенклатура    
-98                                        2
Кольцо уплотнительное ручки стеклоподъемника    1
Тяга клапана управления заслонкой рециркуляции    1
7 Чинандалар Бонг
 
26.04.12
22:09
(5) а параметров и нет, кроме указания периода (начало и конец)
8 Чинандалар Бонг
 
27.04.12
07:29
(4) конструктор запросов сам делает по ним группировку, уберешь, а она опять подставляется
9 Чинандалар Бонг
 
27.04.12
08:05
дело было не в бобине. вот правильный текст
ВЫБРАТЬ
   ПродажиОбороты.Номенклатура КАК Номенклатура,
   ПродажиОбороты.Подразделение КАК Подразделение,
   СРЕДНЕЕ(ВЫРАЗИТЬ(ВЫБОР
               КОГДА ПродажиСебестоимостьОбороты.СтоимостьОборот ЕСТЬ NULL
                   ТОГДА 0
               ИНАЧЕ (ПродажиОбороты.СтоимостьОборот - ПродажиСебестоимостьОбороты.СтоимостьОборот) / ПродажиСебестоимостьОбороты.СтоимостьОборот * 100
           КОНЕЦ КАК ЧИСЛО(15, 0))) КАК Наценка,
   СУММА(ПродажиОбороты.КоличествоОборот) КАК Количество
ИЗ
   РегистрНакопления.Продажи.Обороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), Авто, ) КАК ПродажиОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость.Обороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), Авто, ) КАК ПродажиСебестоимостьОбороты
       ПО ПродажиОбороты.Номенклатура = ПродажиСебестоимостьОбороты.Номенклатура
           И ПродажиОбороты.Подразделение = ПродажиСебестоимостьОбороты.Подразделение

СГРУППИРОВАТЬ ПО
   ПродажиОбороты.Номенклатура,
   ПродажиОбороты.Подразделение,
   ВЫРАЗИТЬ(ВЫБОР
           КОГДА ПродажиСебестоимостьОбороты.СтоимостьОборот ЕСТЬ NULL
               ТОГДА 0
           ИНАЧЕ (ПродажиОбороты.СтоимостьОборот - ПродажиСебестоимостьОбороты.СтоимостьОборот) / ПродажиСебестоимостьОбороты.СтоимостьОборот * 100
       КОНЕЦ КАК ЧИСЛО(15, 0))

УПОРЯДОЧИТЬ ПО
   Подразделение,
   Номенклатура

вот в этом выражении (ПродажиОбороты.СтоимостьОборот - ПродажиСебестоимостьОбороты.СтоимостьОборот) / ПродажиСебестоимостьОбороты.СтоимостьОборот * 100
не было скобочек