将行值作为列MYSQL [重复]

rqdpfwrv  于 2023-04-10  发布在  Mysql
关注(0)|答案(1)|浏览(139)

此问题已在此处有答案

SQL - How to transpose?(2个答案)
5天前关闭。
我想对项进行分组,并使用company_name中的非重复值作为列名
//这是MySQL中的查询

select tbl_addcolumn.quantity,tbl_addcolumn.unit,tbl_addcolumn.item,tbl_supplier.company_name,tbl_supplierprice.totalPrice,tbl_addcolumn.totalcost
FROM tbl_addcolumn
inner join tbl_supplierprice 
on tbl_addcolumn.id = tbl_supplierprice.itemName
inner join tbl_supplier
on tbl_supplierprice.fk_supplierId = tbl_supplier.id 
where tbl_supplier.pr_no = '2023-03-0001'  
ORDER BY `tbl_addcolumn`.`item` ASC
数量单位项目公司名称总价格总成本
轮辋A4证券纸EGB交易三百七百五十
轮辋A4证券纸好运贸易五百七百五十
五十黑笔EGB交易三百二百五十
五十黑笔好运贸易两百二百五十
五十蓝笔EGB交易一百二百五十
五十蓝笔好运贸易两百二百五十
五十红笔EGB交易一百二百五十
五十红笔好运贸易两百二百五十

我的欲望输出是这样的:
| 数量|单位|项目|EGB交易|好运贸易|总成本|
| --------------|--------------|--------------|--------------|--------------|--------------|
| 五|轮辋|A4证券纸|三百|五百|七百五十|
| 五十|件|黑笔|三百|两百|二百五十|
| 五十|件|蓝笔|一百|两百|二百五十|
| 五十|件|红笔|一百|两百|二百五十|

cetgtptt

cetgtptt1#

您可以使用CASE statement来执行此操作。

  • 示例代码 *
SELECT 
      date,
      MAX(CASE WHEN item = 'Item 1' THEN value END) AS 'Item 1',
      MAX(CASE WHEN item = 'Item 2' THEN value END) AS 'Item 2',
      MAX(CASE WHEN item = 'Item 3' THEN value END) AS 'Item 3'
    FROM mytable
    GROUP BY date;

您的更新查询,

SELECT 
  tbl_addcolumn.quantity,  tbl_addcolumn.unit, tbl_addcolumn.item,  tbl_supplier.company_name,
  MAX(CASE WHEN tbl_supplierprice.currency = 'EGB Trading' THEN tbl_supplierprice.totalPrice END) AS 'EGB Trading',
  MAX(CASE WHEN tbl_supplierprice.currency = 'Goodluck Trading' THEN tbl_supplierprice.totalPrice END) AS 'Goodluck Trading',
  tbl_addcolumn.totalcost
FROM tbl_addcolumn
INNER JOIN tbl_supplierprice   ON tbl_addcolumn.id = tbl_supplierprice.itemName
INNER JOIN tbl_supplier  ON tbl_supplierprice.fk_supplierId = tbl_supplier.id 
WHERE tbl_supplier.pr_no = '2023-03-0001'  
GROUP BY 
  tbl_addcolumn.quantity,
  tbl_addcolumn.unit,
  tbl_addcolumn.item,
  tbl_supplier.company_name,
  tbl_addcolumn.totalcost
ORDER BY 
  tbl_addcolumn.item ASC;

让我知道反馈,如果这工作。

相关问题