0

我有一张这样的桌子

TYPE      AMOUNT  

purc    100
sale    120
sale    80
purc    150
sale    50
sale    70
sale    120
purc    60

当我运行此查询“选择类型,总和(AMOUNT)作为 MyTable GROUP 按类型的数量”时,我可以获得 2 个结果集,例如

TYPE     AMOUNT
purc    310
sale    440

但我希望一个查询中的单个结果仅用于销售和采购,例如

SALE   PURC   PROFIT
440    310    130

那个单一的查询是什么?

4

1 回答 1

5

尝试这个:

SELECT
  SUM(IF(`TYPE` = 'purc', `AMOUNT`, 0)) as `PURC`,
  SUM(IF(`TYPE` = 'sale', `AMOUNT`, 0)) as `SALE`
FROM `MyTable`

这应该在您的桌子上执行所谓的旋转。

使用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`
于 2013-07-11T07:58:04.087 回答