SQLITE - prawidłowa transpozycja wierszy do kolumn

Mam bazę danych zawierającą tabelę takich zamówień:

order_id | prod_code | prod_color | size | quantity |  
-----------------------------------------------------
1          SHIRT       001          S      10
1          SHIRT       001          M      7
1          SHIRT       001          L      8
1          SHIRT       001          XL     1
1          SHIRT       995          S      2
1          SHIRT       995          M      1
1          SHIRT       995          L      0
1          SHIRT       995          XL     1
2          PANTS       ....

oraz tabela cen produktów w następujący sposób:

prod_code | prod_color | price | currency
-----------------------------------------
SHIRT       001          10      EUR
SHIRT       001          9       USD
SHIRT       001          50      YEN
SHIRT       001          15      RUB
SHIRT       995          20      EUR
SHIRT       995          29      USD
SHIRT       995          100     YEN
SHIRT       995          45      RUB 
PANTS       ....  

chciałbym uzyskać taki widok (dla uproszczenia filtrowany przez id_porządku):

order_id | prod_code | prod_color | size | quantity | EUR | USD | YEN | RUB
---------------------------------------------------------------------------
1          SHIRT       001          S      10         10    9     50    15
1          SHIRT       001          M      7          10    9     50    15
1          SHIRT       001          L      8          10    9     50    15
1          SHIRT       001          XL     1          10    9     50    15
1          SHIRT       995          S      2          20    29    100   45
1          SHIRT       995          M      1          20    29    100   45
1          SHIRT       995          L      0          20    29    100   45
1          SHIRT       995          XL     1          20    29    100   45

Przejrzałem już sieć i SO, i znalazłemTO PYTANIE to pokazuje mi dokładnie, co muszę zrobić, ale myślę, że z pewnymi modyfikacjami ...

Próbowałem uruchomić to zapytanie w bazie danych:

SELECT o.order_id, o.prod_code, o.prod_color, o.size, o.quantity,
MAX(CASE WHEN p.currency = 'EUR' THEN p.price END) AS 'EUR',
MAX(CASE WHEN p.currency = 'USD' THEN p.price END) AS 'USD',
MAX(CASE WHEN p.currency = 'YEN' THEN p.price END) AS 'YEN',
MAX(CASE WHEN p.currency = 'RUB' THEN p.price END) AS 'RUB'
FROM products_order o JOIN products_prices p ON o.prod_code = p.prod_code
WHERE o.order_id = 1
GROUP BY o.order_id, o.prod_code, o.prod_color, o.size, o.quantity

powróci w kolumnach z cenami, dla każdego wiersza, wartość MAX znaleziona w całej kolumnie: zarówno dla [product_color = 001], jak i dla [product_color = 995] mam cenę równą 20 EURO (gdy dla 001 jest tańszy, tylko 10 euro!)

Próbowałem również bez MAX, ale daje mi jeden wiersz za każdą cenę, pozostawiając wiele pustych komórek (wtedy zrozumiałem, jaki MAX jest używany dla: D).

Czy wiesz, jak robić to, co próbuję zrobić? Jak mogę użyć MAX zamiast jednego prod_color zamiast każdego prod_color?

Mam nadzieję, że zrozumiesz to, co napisałem, z góry dzięki, każda pomoc jest doceniana.

(jeśli potrzebujesz czegoś wyjaśnionego wyraźniej, po prostu zapytaj i jak najszybciej odpowiem.

Jeszcze raz dziękuję, pozdrawiam

questionAnswers(1)

yourAnswerToTheQuestion