查询数据库时遇到问题。
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
答案 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。
这个答案假设“财务”的值已知并且已修复。