Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用MySQL构建数据透视表(已编辑)_Mysql_Database_Join_Sum_Pivot - Fatal编程技术网

使用MySQL构建数据透视表(已编辑)

使用MySQL构建数据透视表(已编辑),mysql,database,join,sum,pivot,Mysql,Database,Join,Sum,Pivot,我有一个用于构建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 o

我有一个用于构建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`

这是小提琴

你离得很近。您只需打开聚合:

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

表应该总是以文本的形式出现,一个SqLFIDLE或DbFIDLE示例是一个严重贬值的例子。考虑应用程序代码中的数据显示的处理问题已经添加了模式。