@ssssoygo

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

Добрый день!
Возникла необходимость вытаскивать отчетность из БД по определенным параметрам.
Есть данные "Услуга" и "Сумма". Из "Сумма" нужно разнести информацию так, чтобы она находилось в определенном столбце: "Сумма за тв" или "Сумма за интернет" - в зависимости от значения "Услуги". При этом, если услуга не соответствует, значение суммы в строке должно быть пустым.
Пример:
Услуги |Сумма|Сумма за тв|Сумма за интернет|
-------------------------------------------------------
инт| 500 | null |500|
тв| 200 | 200 | null|
тв| 150 | 150 | null|
инт| 700 | null | 700|

CAST, CASE, IF перепробованы, вывести нужную таблицу не получается.
Мои знания в sql на уровне нуба, очень нужна помощь. Подскажите, пожалуйста..
  • Вопрос задан
  • 138 просмотров
Решения вопроса 1
@Olteya
select 
Услуга
, Сумма
, case when Услуги ='тв' then Сумма else null /*или cast(null as number)*/ end "Сумма за тв"
, case when Услуги ='интернет' then Сумма else null /*или cast(null as number)*/ end "Сумма за интернет"
from Услуги;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Тебе понадобиться функция PIVOT.

Посмотри пример. Там легко https://www.oracletutorial.com/oracle-basics/oracl...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы