Postgres的 - 从两个表

Postgres的 - 从两个表

的数据已经从具有一个至5月关系两个表取出转换行列。

查询:

select temp1.code, temp1.name, temp_dt.item_type, 

(select item_name from pr_payroll_item where xid = temp_dt.payroll_item_xid

),

temp_dt.amount from pr_template temp1, pr_template_detail temp_dt

where temp1.xid = temp_dt.parent_xid;

Item Type 

0 ear

1 add

2 ded

我有我如何能做到这一点Postgres里以这种方式与MH01 显示数据

code name ear value  add value  ded value 

001 Nav BASIC 1000.00 HR 600.00 PF 50.00

FUEL 200.00

Mobile 300.00

同为其他名称为 “我”?实现这个结果集的查询应该是什么。

回答:

您的基本问题是您需要在一个案例中有效地汇总数据,然后显示值之间的换行符,对吧?

你需要使用什么是array_to_stringarray_agg,虽然在理论上,你在默认情况下需要一个ORDER BY子句将使用排顺序,以便:

select temp1.code, temp1.name, temp_dt.item_type, 

(select item_name from pr_payroll_item where xid = temp_dt.payroll_item_xid

),

temp_dt.amount from pr_template temp1, pr_template_detail temp_dt

where temp1.xid = temp_dt.parent_xid;

变成(编辑做出加入更具可读性等):

select temp1.code, temp1.name, 

array_to_string(array_agg(temp_dt.item_type::text), E'\n') as eid,

array_to_string(array_agg(i.item_name), E'\n') as ear,

array_to_string(array_agg(temp_dt.amount::text)E'\n') as value

from pr_template_detail temp_dt

join pr_template temp1 on temp1.xid = temp_dt.parent_xid

join pr_payroll_item I on xid = temp_dt.payroll_item_xid

group by temp1.code, temp1.name;

以上是 Postgres的 - 从两个表 的全部内容, 来源链接: utcz.com/qa/261654.html

回到顶部