1

我想为报告目的编译数据,使用 php 与 postgres 通信,我有三个表

产品状态

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

产品大师

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 前面

4

1 回答 1

1

你的意思是这样吗?

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
于 2012-07-05T12:04:14.153 回答