【问题标题】:Build a pivot table using MySQL (edited)使用 MySQL 构建数据透视表(已编辑)
【发布时间】:2020-05-29 16:27:14
【问题描述】:

我有一个查询来构建 MySQL 数据透视表,但它并没有给我想要的东西。我想要构建的是这个 而MySQL中的数据是这样的

当我运行查询时,它会产生这不是我想要的

这里是查询

 select
    o.name,
    case when p.name= "Cash" then s.amount end as Cash,
    case when p.name= "M-PESA" then s.amount end as mpesa,
  s.customer_credit
FROM outlet o
INNER JOIN sale s ON s.outlet_id = o.id
INNER JOIN payment_type p ON s.payment_id = p.id`

这是小提琴http://sqlfiddle.com/#!9/0dcbd78/2

【问题讨论】:

  • 表格应始终以文本形式发布,而 sqlfiddle 或 dbfiddle 示例已被弃用
  • 认真考虑处理应用代码中数据显示的问题
  • 我已经添加了架构

标签: mysql database join sum pivot


【解决方案1】:

你很接近。你只需要打开聚合:

select
    o.name,
    sum(case when p.name= 'cash' then s.amount else 0 end) as cash,
    sum(case when p.name= 'm-pesa' then s.amount else 0 end) as mpesa,
    sum(s.customer_credit)
from outlet o
inner join sale s on s.outlet_id = o.id
inner join payment_type p on s.payment_id = p.id
group by o.name

【讨论】:

    猜你喜欢
    • 2021-09-24
    • 2022-01-19
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多