2017-10-11 140 views
0

我有这样的一个表:在SQL创建自定义列查询

ITEM PICTURE CATEGORY STOCK 
1  Mickey  Shirt  3 
2  Mickey  Jacket  2 
3  Donald  Jacket  0 
4  Donald  Shirt  6 
5  Donald  Hoodie  1 
6  Mickey  Hoodie  3 
7  Goofy  Shirt  1 
8  Goofy  Hoodie  2 
9  Goofy  Jacket  3 

项目列是自动增量

我需要一个像这样的输出:

PICTURE HOODIE JACKET SHIRT 
Donald  1   0   6 
Goofy  2   3   1 
Mickey  3   2   3 

任何想法如何我可以产生这种输出?谢谢

+0

您可以使用*有条件聚集*。 SO中有很多例子。 –

+0

一个更好的主意是一些简单的应用程序代码 – Strawberry

回答

2

您可以使用CASE表达式。

查询

select PICTURE, 
sum(case CATEGORY when 'Hoodie' then STOCK else 0 end) as `HOODIE`, 
sum(case CATEGORY when 'Jacket' then STOCK else 0 end) as `JACKET`, 
sum(case CATEGORY when 'Shirt' then STOCK else 0 end) as `SHIRT` 
from your_table_name 
group by PICTURE; 
+0

非常感谢,它的工作原理! – Jimmy