다음 데이터 결과 집합이 있습니다.Oracle SQL 행을 열로 바꿈
REQUEST_ID ATTRIBUTE_TYPE VENDOR LANG_ID PROJ_DESC COST_TYPE VALUE
1 DOCUMENT JLK 1188 SAMPLE PROJECT1 USAGE_COST 500
1 DOCUMENT JLK 1188 SAMPLE PROJECT1 EXP_COST 350
1 DOCUMENT JLK 1188 SAMPLE PROJECT1 COMMENTS OK
1 DOCUMENT JLK 1194 SAMPLE PROJECT1 USAGE_COST 400
1 DOCUMENT JLK 1194 SAMPLE PROJECT1 EXP_COST 575
1 DOCUMENT JLK 1194 SAMPLE PROJECT1 COMMENTS DONE
1 DOCUMENT JLK 1188 SAMPLE PROJECT2 USAGE_COST 100
1 DOCUMENT JLK 1188 SAMPLE PROJECT2 EXP_COST 200
1 DOCUMENT JLK 1188 SAMPLE PROJECT2 COMMENTS ACCEPTED
1 DOCUMENT JLK 1194 SAMPLE PROJECT2 USAGE_COST 300
1 DOCUMENT JLK 1194 SAMPLE PROJECT2 EXP_COST 400
1 DOCUMENT JLK 1194 SAMPLE PROJECT2 COMMENTS GOOD
내가 열
LANG_ID
,
PROJ_DESC
,
COST_TYPE
및
VALUE
를 사용하여 이러한 행을 바꾸어 싶습니다
.
나는 아래의 결과를 달성하기 위해 노력하고이에REQUEST_ID ATTRIBUTE_TYPE VENDOR LANG_ID PROJ_DESC USAGE_COST EXP_COST TOTAL_COST COMMENTS
1 DOCUMENT JLK 1188 SAMPLE PROJECT1 500 350 850 OK
1 DOCUMENT JLK 1194 SAMPLE PROJECT1 400 575 975 DONE
1 DOCUMENT JLK 1188 SAMPLE PROJECT2 100 200 300 ACCEPTED
1 DOCUMENT JLK 1194 SAMPLE PROJECT2 300 400 700 GOOD
어떤 도움은 매우 극명하게 될 것이다.
감사합니다.
select REQUEST_ID, ATTRIBUTE_TYPE, VENDOR, LANG_ID, PROJ_DESC,
max(case when COST_TYPE = 'USAGE_COST' then value end) as usage_cost,
max(case when EXP_TYPE = 'EXP_COST' then value end) as exp_cost,
max(case when COST_TYPE = 'COMMENTS' then value end) as comments
from t
group by REQUEST_ID, ATTRIBUTE_TYPE, VENDOR, LANG_ID, PROJ_DESC;
참고 :