Mam tabelę C z listą klientów. W tabeli O są ich zamówienia.
C
id | imie
1 | Ewa
2 | Monika
3 | Rafał
O
c_id | o_nr | o_date
1 | 0915 | 20-01-14
1 | 0929 | 21-01-14
2 | 15150 | 20-01-14
2 | 17000 | 04-02-14
2 | 16098 | 28-01-14
2 | 17007 | 12-03-14
3 | 12120 | 20-03-14
Chcę uzyskać listę klientów z ich zamówieniami, ale ułożonymi w ten sposób:
c.id | o.o_nr1 | o.o_nr2 | o.o_nr3 | o.o_nr3
dla tabel poniżej wynik wyglądałby tak:
1 | 0915 | 0929 | NULL | NULL
2 | 15150 | 16098 | 17000 | 17007
3 | 12120 | NULL | NULL | NULL
Mam tylko początek zapytania:
SELECT c.id, (SELECT o1.o_nr FROM orders o1 WHERE o1.c_id = c.id ) AS o_nr1 FROM customers c
Chcę, by zamówienia były uszeregowane; czyli zamówienie w kolumnie 2 jest starsze od zamówienia w kol3 itd.
Dla uproszczenia możemy założyć, że w bazie nie ma klientów z większą liczbą zamówień niż 4.
Czy da się to jakoś zrobić?
Nikt nie wie?
