Witam.
Czy możecie mi podpowiedzieć w jaki sposób z takich tabel:
PRACOWNICY:
p_id | p_imie |
---|---|
1 | Tomasz |
2 | Adam |
CZAS_PRACY
c_id | c_p_id | c_data | c_czas |
---|---|---|---|
1 | 1 | 2014-06-01 | 8:00 |
2 | 1 | 2014-06-02 | 9:00 |
3 | 1 | 2014-06-03 | 10:00 |
4 | 1 | 2014-06-04 | 8:00 |
5 | 1 | 2014-06-05 | 6:00 |
6 | 2 | 2014-06-01 | 6:00 |
7 | 2 | 2014-06-02 | 5:00 |
8 | 2 | 2014-06-03 | 8:00 |
9 | 2 | 2014-06-04 | 9:00 |
10 | 2 | 2014-06-05 | 10:00 |
Otrzymać taki wynik (w MySQL):
Pracownik | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
Tomasz | 8:00 | 9:00 | 10:00 | 8:00 | 6:00 |
Adam | 6:00 | 5:00 | 8:00 | 9:00 | 10:00 |
Z góry dziękuję
Próbowałem zrobić coś takiego:
SELECT p_imie,
CASE WHEN (day(b_data)=1) THEN b_czas END '1',
CASE WHEN (day(b_data)=2) THEN b_czas END '2'
FROM CZAS_PRACY
LEFT JOIN PRACOWNICY ON p_id = c_p_id
jednak daje to taki wynik:
p_imie | 1 | 2 |
---|---|---|
Tomasz | 8:00 | (NULL) |
Tomasz | (NULL) | 9:00 |
[..] |
Dodanie GROUP BY
SELECT p_imie,
CASE WHEN (day(b_data)=1) THEN b_czas END '1',
CASE WHEN (day(b_data)=2) THEN b_czas END '2'
FROM CZAS_PRACY
LEFT JOIN PRACOWNICY ON p_id = c_p_id
GROUP BY p_imie
p_imie | 1 | 2 |
---|---|---|
Tomasz | 8:00 | (NULL) |
Adam | 6:00 | (NULL) |