我有一张这样的桌子
TYPE AMOUNT
purc 100
sale 120
sale 80
purc 150
sale 50
sale 70
sale 120
purc 60
Run Code Online (Sandbox Code Playgroud)
当我运行此查询"选择类型,总和(AMOUNT)作为MyTable GROUP的数量类型"我可以获得2个结果集
TYPE AMOUNT
purc 310
sale 440
Run Code Online (Sandbox Code Playgroud)
但我希望单个结果只在一个查询中出售和purc之类的
SALE PURC PROFIT
440 310 130
Run Code Online (Sandbox Code Playgroud)
这个单一查询是什么?
试试这个:
SELECT
SUM(IF(`TYPE` = 'purc', `AMOUNT`, 0)) as `PURC`,
SUM(IF(`TYPE` = 'sale', `AMOUNT`, 0)) as `SALE`
FROM `MyTable`
Run Code Online (Sandbox Code Playgroud)
这应该在您的桌子上执行所谓的旋转.
使用CASE而不是IF:
SELECT
SUM(CASE `TYPE` WHEN 'purc' THEN `AMOUNT` ELSE 0 END) as `PURC`,
SUM(CASE `TYPE` WHEN 'sale' THEN `AMOUNT` ELSE 0 END) as `SALE`
FROM `MyTable`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |