我正在尝试从多个表中的数据创建数据透视表,但我无法让它工作。 这是数据库结构:
所以表格看起来像是:
我想要创建的是一个数据透视表,其中包含了每个产品的客户的所有销售数据,如下所示:
(此数据将被输入到另一个需要此输入的系统中,因此我无法更改格式)
但是,我不知道如何做到这一点。 我试过这个:
select distinct c.name,
p.name,
sum(p.price)
FROM customer c
left join sale s on c.customerId = s.customerId
left outer join product p ON s.productId = p.productId
group by s.productId, s.customerId
我知道这并不多,但我很难绕过它。 任何人都可以帮助我走上正轨吗?
干杯, CJ
答案 0 :(得分:0)
非常简单,您可以在语句时通过自定义案例进行调整:
select c.name,
sum(CASE WHEN p.name = 'Product X' THEN p.price ELSE 0 END) AS "Product X",
sum(CASE WHEN p.name = 'Product Y' THEN p.price ELSE 0 END) AS "Product Y",
sum(CASE WHEN p.name = 'Product Z' THEN p.price ELSE 0 END) AS "Product Z"
FROM customer c
left join sale s on c.customerId = s.customerId
left outer join product p ON s.productId = p.productId
group by c.customerId, c.name