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

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

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

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

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

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


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