我想编译数据用于报告目的,使用 php 与 postgres 通信, 我有三张 table
产品状态:
status_code | value
------------|------
1 | a
2 | b
product_child:
code| ID | status_code
----|----|------------
X | 1 | 1
X | 2 | 1
X | 3 | 2
Y | 1 | 2
Y | 2 | 2
Z | 1 | 1
product_master:
code|description(and some other columns not relevent)
X | la
Y | alb
Z | lab
最后我基本上想要一个像这样的表格,我将展示它
| total child | status a | status b
bla | 3 | 2 | 1
alb | 2 | 0 | 2
lab | 1 | 1 | 0
我试过了
SELECT s.value, count(s.value)
FROM product_child p, product_status s
WHERE
p.product_status = s.status_code
and p.product_code = get_product_code('Sofa (1-seater) J805')
group by
s.value
它为我们提供了针对特定代码的分组,但我希望将其翻转并附加在不同的 product_codes 之前
最佳答案
你是这个意思吗?
select pm.description,
count(pc.code) total,
count(case when ps.value = 'A' then ps.value else null end) statusA,
count(case when ps.value = 'B' then ps.value else null end) statusB
from product_master pm join product_child pc on pm.code = pc.code
join product_status ps on pm.status_code = ps.status_code
group by pm.description
关于SQL 查询处理三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11343846/