场景

  比如说一个订单对应多条数据,当状态(status)=1的时候,  数量(num)=25,当状态(status)=2的时候,  数量(num)=45,现在想用一条sql记录下不同状态对应的数量为多少,如下图所示:

  mysql行转列(多行转一列)

  期待结果->

  mysql行转列(多行转一列)

sql语句示例 

SELECT trades_id,
MAX(CASE WHEN apply_status=1 THEN pay_change ELSE 0 END) 'num_status1',
MAX(CASE WHEN apply_status=2 THEN pay_change ELSE 0 END) 'num_status2'
FROM b_balance_detail
WHERE site_id=100190 
AND apply_status!=4 AND trades_id = 1001901531475622312 
//上述sql是查询了一个订单的情况,当多个时应当加个group by进行分组查询 如下:
SELECT trades_id,
MAX(CASE WHEN apply_status=1 THEN pay_change ELSE 0 END) 'num_status1',
MAX(CASE WHEN apply_status=2 THEN pay_change ELSE 0 END) 'num_status2'
FROM b_balance_detail 
group by trades_id

  

 

相关文章:

  • 2021-12-22
  • 2021-08-07
  • 2021-04-15
  • 2021-06-27
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-22
  • 2021-07-25
  • 2021-08-02
  • 2022-12-23
相关资源
相似解决方案