2017-10-11 18 views
0

Ich habe eine Tabelle wie folgt aus:Abfrage

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 

Die ITEM-Säule ist Autoinkrement

Ich brauche eine Ausgabe wie folgt aus:

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

Jede Idee, wie Ich kann diese Ausgabe produzieren? Danke

+0

Sie können mit * bedingte Aggregation *. Es gibt viele Beispiele hier in SO. –

+0

Eine bessere Idee wäre ein einfacher Anwendungscode – Strawberry

Antwort

2

Sie können CASE Ausdruck verwenden.

Abfrage

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

Vielen Dank, es funktioniert! – Jimmy