У нас есть база данных Oracle с тысячами записей клиентов, которые воспользовались нашими услугами.Пример таблицы услуг (упрощенно) со списком предоставляемых нами услуг выглядит следующим образом:
Service Table
------------------------------------
| id | service_code | name | price |
------------------------------------
| 1 | 101 | abc | 20 |
| 2 | 102 | xyz | 20 |
------------------------------------
Выше приведена упрощенная таблица из базы данных.Здесь некоторые из сервисов (каждая запись представляет сервис) являются индивидуальными, а некоторые представляют собой группу из двух сервисов (которые должны предоставляться всегда как набор / группа).
Проблема: Предположим, что сервис с идентификатором 2 является группой из двух сервисов.Нам нужно распечатать счет, показывающий ввод обеих услуг в отдельности.Мне нужен SELECT
запрос для этого.
Invoice Example:
---------------------------------
| service_code | name | price |
---------------------------------
| 102A | xyz_A | 15 |
| 102B | xyz_B | 05 |
---------------------------------
Я знаю, используя оператор case Oracle, я могу изменить значения следующим образом:
SELECT
CASE id WHEN 2 THEN '102A'
END AS 'service_code'
CASE id WHEN 2 THEN 'xyz_A'
END AS 'name'
CASE id WHEN 2 THEN 15
END AS 'price'
FROM customers;
(я знаю, что будет несколько when
в регистре для каждого сервисного кода)
Надеюсь, вы поняли мою проблему. Теперь проблема в том, что насчет второго субсервиса?Как это получить?Есть ли способ для этого?
second sub service => | 102B | xyz_B | 05 |