|
СКД | ☑ | ||
---|---|---|---|---|
0
MadHead
19.03.12
✎
15:56
|
Есть такой запрос.
ВЫБРАТЬ ЕСТЬNULL(ПланыПродажГод.Бренд, РеализацияГод.Бренд) КАК Бренд, ПланыПродажГод.КвоОборот КАК ПланГод, РеализацияГод.КвоОборот КАК ФактГод, ЕСТЬNULL(РеализацияГод.КвоОборот, 0) - ЕСТЬNULL(ПланыПродажГод.КвоОборот, 0) КАК ОтклонениеШтГод, ВЫБОР КОГДА ЕСТЬNULL(ПланыПродажГод.КвоОборот, 0) = 0 ТОГДА 100 ИНАЧЕ ЕСТЬNULL(РеализацияГод.КвоОборот, 0) / ПланыПродажГод.КвоОборот * 100 КОНЕЦ КАК ОтклонениеПроцГод, ЕСТЬNULL(ПланыПродажГод.ЦФО, РеализацияГод.ЦФО) КАК ЦФО ИЗ РегистрНакопления.ПланыПродаж.Обороты(, , , ТипТовара = ЗНАЧЕНИЕ(Перечисление.ВидЗЧ.Автомобиль)) КАК ПланыПродажГод ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.Реализация.Обороты(, , , ТипТовара = ЗНАЧЕНИЕ(Перечисление.ВидЗЧ.Автомобиль)) КАК РеализацияГод ПО ПланыПродажГод.Бренд = РеализацияГод.Бренд И ПланыПродажГод.ЦФО = РеализацияГод.ЦФО Группировка строк Бренд, группировка колонок ЦФО. Итог по колонке по среднему считается неправильно, так как в некоторых ячейках попадется значение NULL. Как правильно посчитать итог? |
|||
1
Buster007
19.03.12
✎
16:01
|
ВЫБОР
КОГДА ПланыПродажГод.КвоОборот Есть NULL ТОГДА 100 |
|||
2
Buster007
19.03.12
✎
16:02
|
избавься от NULLа, раз попадает )
|
|||
3
Buster007
19.03.12
✎
16:03
|
да и вообще
ВЫБОР КОГДА ЕСТЬNULL(ПланыПродажГод.КвоОборот, 0) = 0 ТОГДА 100 ИНАЧЕ ЕСТЬNULL(РеализацияГод.КвоОборот, 0) / ПланыПродажГод.КвоОборот * 100 КОНЕЦ КАК ОтклонениеПроцГод, это можно заменить на ЕСТЬNULL(РеализацияГод.КвоОборот, 0) / ЕСТЬNULL(ПланыПродажГод.КвоОборот, РеализацияГод.КвоОборот) * 100 |
|||
4
MadHead
19.03.12
✎
16:13
|
(3) Нельзя. Но вопрос не в этом.
Я так понимаю NULL появляется уже в СКД когда в пересечении групировок не существует значение |
|||
5
MadHead
19.03.12
✎
16:15
|
Я хочу получить запрос итог по полю "ОтклонениеПроцГод" там значений NULL в результате запроса нету
|
|||
6
ILM
гуру
19.03.12
✎
16:15
|
В СКД запрети NULL
|
|||
7
Buster007
19.03.12
✎
16:18
|
(4) странно что нельзя... ну да ладно, твоё дело.
если в результате NULLа нет, то откуда ему появиться при выводе? |
|||
8
MadHead
20.03.12
✎
00:28
|
Есть выборка Запроса
Номенклатура1 10 Склад1 7 Склад2 3 НОменклатура2 12 Склад2 12 Теперь пытаемся строить таблицу где группировка строк Номенклатура, а группирова колонок Склад. Получаем Склад1 Склад2 Номенклатура1 7 3 Номенклатура2 NULL 12 Теперь, если вывести по складу итог Среднее(Ресурс), То по складу1 выведется 7, а не 3.5. Вот я и задавал вопрос, если способ правильно вывести итог в данном случае |
|||
9
MadHead
20.03.12
✎
00:29
|
(7) Заменить, то можно только смысла в этом не много
|
|||
10
MadHead
23.03.12
✎
13:39
|
Может сегодня подскажут
|
|||
11
Axel2009
23.03.12
✎
13:46
|
Среднее(выбор когда ресурс null тогда 0 иначе ресурс конец)
|
|||
12
Лодырь
23.03.12
✎
13:51
|
Может быть задуматься о необходимости полного соединения?
|
|||
13
Axel2009
23.03.12
✎
13:53
|
(12) и что это даст?
|
|||
14
ЭсОдин
23.03.12
✎
13:58
|
Создай временную таблицу и собери в неё всю номенклатуру и все склады (может понадобиться полное соединение складов с номенклатурой), эту таблицу соедини со своим запросом, замени NULL на 0, у тебя для каждой номенклатуры на каждом складе будет значение, в сводной таблице не будет NULL.
|
|||
15
Лодырь
23.03.12
✎
14:00
|
(14) Не совсем так. Собирать нужно не всю номенклатуру и склады а лишь те которые попадут в его запрос, верно?
|
|||
16
ЭсОдин
23.03.12
✎
14:01
|
Да, конечно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |