powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Можно ль сие сделать без подзапроса?
4 сообщений из 4, страница 1 из 1
Можно ль сие сделать без подзапроса?
    #39310431
хмммм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чё-т мозг закип. Помогите.

Вот, значит, данные:

with t as (
select 'c1' c, 1 s from dual union all
select 'c2' c, 2 s from dual union all
select 'c3' c, 10 s from dual union all
select 'c4' c, -5 s from dual union all
select 'c5' c, 20 s from dual)

Нужно:

sum(s), если значение s для с='с3' больше значения s для с='с4',
Т.е. если 10 > -5, ответ = 28

sum(s) без c in ('c3','c4'), если иначе
Т.е. если 10 <= -5, ответ = 23
...
Рейтинг: 0 / 0
Можно ль сие сделать без подзапроса?
    #39310458
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хмммм,

Код: plsql
1.
2.
3.
4.
select sum(case when max(decode(c, 'c3', s)) > max(decode(c, 'c4', s)) then sum(s) else 0 end
           + max(case when c in ('c3', 'c4') then 0 else s end)) s
  from t
group by case when c in ('c3', 'c4') then '#' else c end
...
Рейтинг: 0 / 0
Можно ль сие сделать без подзапроса?
    #39310472
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хмммм,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
  1  with t as (
  2  select 'c1' c, 1 s from dual union all
  3  select 'c2' c, 2 s from dual union all
  4  select 'c3' c, 10 s from dual union all
  5  select 'c4' c, -5 s from dual union all
  6  select 'c5' c, 20 s from dual)
  7  select sum(s)
  8  ,sum(decode(c,'c3',s)) c3
  9  ,sum(decode(c,'c4',s)) c4
 10  ,case when sum(decode(c,'c3',s))> sum(decode(c,'c4',s)) then sum(s)
 11  else sum(decode(c,'c3',0,'c4',0,s)) end ss
 12* from t
SQL> /

    SUM(S)         C3         C4         SS
---------- ---------- ---------- ----------
        28         10         -5         28



.....
stax
...
Рейтинг: 0 / 0
Можно ль сие сделать без подзапроса?
    #39310499
хмммм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну да, точно.. Спасибо.

Я чё-т переусложнил, с lead - lag пытался, но упёрся в то, что суммировать нельзя (ora-30483)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Можно ль сие сделать без подзапроса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]