【发布时间】:2021-11-09 08:40:38
【问题描述】:
如何在sql查询中将行转换为列,下面是我的查询..
SELECT sum(result_value), element_name
FROM pay_assignment_actions paa,pay_payroll_actions ppa,per_time_periods ptp,pay_run_results prr,
pay_element_types_f ele,pay_run_result_values rrv,pay_input_values_f piv,pay_element_classifications pec
WHERE pec.classification_id = ele.classification_id AND paa.payroll_action_id = ppa.payroll_action_id
AND ppa.time_period_id = ptp.time_period_id AND paa.assignment_action_id = prr.assignment_action_id
AND prr.element_type_id = ele.element_type_id AND prr.run_result_id = rrv.run_result_id
AND rrv.input_value_id = piv.input_value_id AND piv.name = 'Pay Value'
-- AND paa.assignment_id = paaf.assignment_id
--AND :period_name BETWEEN TRUNC(ptp.start_date) and TRUNC(ptp.end_date)
AND element_name in ('AH Basic Salary','AH Housing Allowance','AH Transport Allowance')
GROUP BY element_name
我现在得到的输出:
salary element_name
------------ --------------------
682236308.24 AH Housing Allowance
3277904755.58 AH Basic Salary
346652883.22 AH Transport Allowance
但我想要的结果如下:
AH Housing Allowance AH Basic Salary AH Transport Allowance
-------------------- ---------------- ----------------------
682236308.24 3277904755.58 346652883.22
【问题讨论】:
-
在 Oracle 中使用 PIVOT 函数 - 完全符合您的要求。你可以在这里阅读:blogs.oracle.com/sql/post/…
-
今日提示:切换到现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读(和维护),并且在需要时更容易转换为外连接。
标签: sql plsql oracle-sqldeveloper plsqldeveloper plsql-package