不使用GROUP_CONCAT查询

时间:2011-08-15 05:57:45

标签: mysql

查询数据库时遇到问题。

Id parent pro_comp_id    year         type  financial  quantity

1   1           2      2011-08-15        1     10           12
2   1           2      2011-08-15        2     100         120 
3   1           2      2011-08-15        3     178         190 

任何机构都可以告诉我如何查询 这样就可以在一行中显示这三行。

financial  quantity financial  quantity financial  quantity 
  10      12          100     120           178    190    

可以使用group concat完成 SELECT GROUP_CONCAT(财务),父级来自achivements group的父级 但我不想使用Group_concat

1 个答案:

答案 0 :(得分:2)

您想要的通常称为“枢轴”。以下是执行此操作的标准方法:

select
  year,
  sum((financial = 10) * quantity) as financial_10_qty,
  sum((financial = 100) * quantity) as financial_100_qty,
  sum((financial = 178) * quantity) as financial_178_qty
from mytable
group by 1;

这是有效的,因为financial = ?对于true为1而对于false为0。

这个答案假设“财务”的值已知并且已修复。