|
Как сгруппировать строки в запросе без суммирования по некоторым колонкам? | ☑ | ||
---|---|---|---|---|
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) опасается, что если сложить много нулей - получится единица....
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |