[英]Converting row data into column in Mysql Dynamically
I have written query as 我写的查询为
SELECT c.customer_name, o.net_total,
GROUP_CONCAT(
'SUM(IF(ps.product_sku_name = ''',
product_sku_name,
''', o.net_total,0)) AS ',
product_sku_name
)
FROM products_sku ps
LEFT JOIN products AS p
ON p.product_id = ps.product_id
left join order_lines ol on ol.product_sku_id = ps.product_sku_id
left join orders o on o.order_id = ol.order_id
left join customers c on c.customer_id = o.customer_id
GROUP BY ps.product_sku_id
And got result as 并得到了结果
customer_name net_total GROUP_CONCAT( 'SUM(IF(ps.product_sku_name = ''', product_sku_name, ''', o.net_total,0)) AS ', product_sku_name )
Customer2 126.0000 SUM(IF(ps.product_sku_name = 'PSKU Name 1', o.net_total,0)) AS PSKU Name 1,SUM(IF(ps.product_sku_name = 'PSKU Name 1', o.net_total,0)) AS PSKU Name 1,SUM(IF(ps.product_sku_name = 'PSKU Name 1', o.net_total,0)) AS PSKU Name 1
Customer1 105.0000 SUM(IF(ps.product_sku_name = 'PSKU Name2', o.net_total,0)) AS PSKU Name2
NULL NULL SUM(IF(ps.product_sku_name = 'PSKU Name3', o.net_total,0)) AS PSKU Name3
NULL NULL SUM(IF(ps.product_sku_name = 'Product SKU 4', o.net_total,0)) AS Product SKU 4
Customer1 945.0000 SUM(IF(ps.product_sku_name = 'PSKU Name4', o.net_total,0)) AS PSKU Name4
Customer1 2159.3600 SUM(IF(ps.product_sku_name = 'Jordon', o.net_total,0)) AS Jordon,SUM(IF(ps.product_sku_name = 'Jordon', o.net_total,0)) AS Jordon
And i expect result as 我期望结果
customer_name PSKU Name 1 PSKU Name 2 PSKU Name 3 PSKU Name 4 Jordon
Customer2 126 NULL NULL NULL NULL
Customer1 NULL 105 NULL 945 2159
I have referred MySQL pivot table query with dynamic columns site for making this query 我已经将MySQL数据透视表查询与动态列站点一起进行了查询
Please reply ... Thanks in advance 请回复...在此先感谢
Your attempt got part way toward building a query. 您的尝试已在构建查询中发挥了作用。 But you need a stored procedure to build and execute it.
但是您需要一个存储过程来构建和执行它。
See http://mysql.rjweb.org/doc.php/pivot for such code. 有关此类代码,请参见http://mysql.rjweb.org/doc.php/pivot 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.