У меня проблема с тем, чтобы сделать несколько записей одной записью с несколькими столбцами в Oracle.Это мой запрос:
SELECT cnim, ckddos FROM tjadsidangast j, tsidangast s
WHERE j.cnojadwal=s.cnojadwal AND cnim='1111500003'
результат:
+------------+--------+
| CNIM | CKDDOS |
+------------+--------+
| 1111500003 | 00105 |
| 1111500003 | 00060 |
| 1111500003 | 00126 |
+------------+--------+
Я пробовал этот запрос:
SELECT cnim,
LTRIM(MAX(SYS_CONNECT_BY_PATH(ckddos,','))
KEEP (DENSE_RANK LAST ORDER BY curr),',') AS elements
FROM (SELECT cnim,
ckddos,
ROW_NUMBER() OVER (PARTITION BY cnim ORDER BY cstatus) AS curr,
ROW_NUMBER() OVER (PARTITION BY cnim ORDER BY cstatus) -1 AS prev
FROM tsidangast j, tjadsidangast s WHERE j.cnojadwal=s.cnojadwal AND
cnim='1111500003')
GROUP BY cnim
CONNECT BY prev = PRIOR curr AND cnim = PRIOR cnim
START WITH curr = 1;
результат:
+------------+---------------------+
| CNIM | ELEMENTS |
+------------+---------------------+
| 1111500003 | 00126,00105,00060 |
+------------+---------------------+
мой вопрос: как я могу сделать так, чтобы результат стал таким:
+------------+--------+-------+-------+
| CNIM | MD | P1 | P2 |
+------------+--------+-------+-------+
| 1111500003 | 00126 | 00105 | 00060 |
+------------+--------+-------+-------+
спасибо