Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как сгруппировать строки в запросе без суммирования по некоторым колонкам?

Как сгруппировать строки в запросе без суммирования по некоторым колонкам?
Я
   slafor
 
19.12.20 - 19:14
Извините, если заголовок темы немножко коряво написал. )

В общем, есть запрос к РС (периодический, независимый):

ВЫБРАТЬ РАЗЛИЧНЫЕ Измерение, Ресурс1, Ресурс2
ИЗ РегистрСведений.РегистрСведений1

Имеем такие записи на нужную нам дату:
1. Измерение - 100, 200
1. Измерение - 100, 0.

При выборе различных получаем обе строки. А надо бы одну, как-то так:
1. Измерение - 100, 200. То есть там, где не нули, не суммируем, а нули просто "не замечаем" )

Понимаю, что глупость, но сделать надо именно так. Просто в реальной конфигурации там есть еще регистры, которые мешают получить правильный результат, потому что пользователь заполнил их неправильно.
   slafor
 
1 - 19.12.20 - 19:15
Прошу прощения, надо читать: "Просто в реальной конфигурации там ЕСТЬ ЕЩЕ ИЗМЕРЕНИЯ, которые мешают получить нужный результат, потому что пользователь заполнил их неправильно.".
   Cthulhu
 
2 - 19.12.20 - 19:20
СУММА(ВЫБОР КОГДА Ресурс1*Ресурс2 = 0 ТОГДА 0 ИНАЧЕ Ресурс1) КАК Ресурс1,
СУММА(ВЫБОР КОГДА Ресурс1*Ресурс2 = 0 ТОГДА 0 ИНАЧЕ Ресурс2) КАК Ресурс2
   RomanYS
 
3 - 19.12.20 - 19:42
(0) >>То есть там, где не нули, не суммируем, а нули просто "не замечаем" )
Где Ресурс2 <> 0
   slafor
 
4 - 19.12.20 - 19:53
Как и думал, чуть неправильно сформулировал свой вопрос )


При выборе различных по первому ресурсу всегда будут дублироваться 100, при суммировании они тоже будут суммироваться, а этого не надо. А вот по второму ресурсу - пусть суммируются, если там нули.
   Mikeware
 
5 - 19.12.20 - 20:13
(4) а что мешает группировать по измерению и первому ресурсу, суммируя второй?
   slafor
 
6 - 19.12.20 - 20:25
(5) Да можно, конечно... Знать бы заранее, какой из них группировать, а какой суммировать )
   Вафель
 
7 - 19.12.20 - 20:58
бери не сумму а максимум
   DrLekter
 
8 - 19.12.20 - 21:29
Максимум не поможет, вдруг ситуация 100 200; 100 0; 100 100.
в (2) верный ответ: через ВЫБОР КОГДА суммировать.
   RomanYS
 
9 - 19.12.20 - 22:27
(6) Снова нихчего не ясно, сам же писал "вот по второму ресурсу - пусть суммируются".
Может уже прикладную задачу опишешь, если с формализацией так грустно?
   Cthulhu
 
10 - 20.12.20 - 00:19
ну или чтобы с защитой от дурака - чтото типа
СУММА(ВЫБОР КОГДА ЕСТЬNULL(Ресурс1,0)*ЕСТЬNULL(Ресурс2,0) = 0 ТОГДА 0 ИНАЧЕ ЕСТЬNULL(Ресурс1,0)) КАК Ресурс1,
СУММА(ВЫБОР КОГДА ЕСТЬNULL(Ресурс1,0)*ЕСТЬNULL(Ресурс2,0) = 0 ТОГДА 0 ИНАЧЕ ЕСТЬNULL(Ресурс2,0)) КАК Ресурс2
   RomanYS
 
11 - 20.12.20 - 00:38
(10) зачем естьnull? У ТСа одна таблица, нуллов быть не может
   Cthulhu
 
12 - 20.12.20 - 00:43
(11): привычка. полезная. например, для повторного использования блока кода. полезным привычкам надо потакать. согласен?
   GreyK
 
13 - 20.12.20 - 04:15
(0) Раздели группирующие поля и ресурсы.
   Вафель
 
14 - 20.12.20 - 09:14
0 и так не будет суммироваться. зачем на него условие делать?
   Вафель
 
15 - 20.12.20 - 09:14
(12) читабельность главнее быстрого копипаста
   Mikeware
 
16 - 20.12.20 - 14:50
(14) опасается, что если сложить много нулей - получится единица....

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.