Я пытаюсь построить запрос SQL на качестве oracle database
:Получить для конкретных тегов значения в столбце
Я получаю с двумя запросами следующие наборы результатов.
Результат Набор 1:
Таблица Теги:
SELECT ProjID, Tag_Code, Value_numeric, Value_String from Tags;
+-------------------------------------------------------------------------+
| ProjID Tag_Code Value_numeric Value_String |
+-------------------------------------------------------------------------+
| 1 TOT_CUST_EXPOSURE 100 null |
| 1 EXPOSURE_DATE null 1.1.2014 |
| 1 DEBT 100 null |
| 2 TOT_CUST_EXPOSURE 232 null |
| 2 EXPOSURE_DATE null 12.05.2013 |
| 2 DEBT 2324 null |
| 3 TOT_CUST_EXPOSURE 3452 null |
| 3 EXPOSURE_DATE null 19.03.2014 |
| 3 DEBT 2345 null |
| 4 TOT_CUST_EXPOSURE 3245674 null |
| 4 EXPOSURE_DATE null 19.03.2014 |
| 4 DEBT 12345 null |
+-------------------------------------------------------------------------+
Результат Набор 2:
Таблица: Проект
SELECT ProjID, CustomerName from Project;
+--------------------------------------+
| ProjID CustomerName |
+--------------------------------------+
| 1 a |
| 2 b |
| 3 c |
| 4 d |
+--------------------------------------+
Однако я хотел бы получить этот набор результатов.
+--------------------------------------------------------------------------+
| ProjID CustomerName TOT_CUST_EXPOSURE EXPOSURE_DATE DEBT |
+--------------------------------------------------------------------------+
| 1 a 100 1.1.2014 100 |
| 2 b 232 12.05.2013 2324 |
| 3 c 3452 19.03.2014 2345 |
| 4 d 3245674 19.03.2014 12345 |
+--------------------------------------------------------------------------+
Возможно ли это в sql? Как я могу это реализовать? Я очень ценю ваш ответ!
Thx для вашего ответа! Что мне делать, если для одного «проекта», скажем, с «project id = 8», в «теге» нет записи. Как справиться с этим, не получив ошибку? – mrquad
Для ответа 'pivot': измените' inner join' на 'left join', а затем остальные поля будут заполнены значениями' null'. ([Скрипка] (http://sqlfiddle.com/#!4/6ade6/2/0)). ** EDIT: ** обновленная вторая часть ответа – yamny