Wkoncu sie poddalem i prosze Was o pomoc. Mam takie tabele:
CREATE TABLE uzytkownicy ( uzytkownik_id mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT, plec enum('kobieta','mezczyzna','') NOT NULL, imie varchar(50) NOT NULL, nazwisko varchar(50) NOT NULL, PRIMARY KEY (uzytkownik_id) ); INSERT INTO uzytkownicy VALUES (1, 'kobieta', 'Dagmara', 'A'); INSERT INTO uzytkownicy VALUES (2, 'mezczyzna', 'Dariusz', 'B'); INSERT INTO uzytkownicy VALUES (3, 'kobieta', 'Sabina', 'C'); CREATE TABLE platnosci1 ( platnosc_id mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT, uzytkownik_id mediumint(8) UNSIGNED NOT NULL, kwota_platnosci decimal(10,2) NOT NULL, data_platnosci datetime NOT NULL, PRIMARY KEY (platnosc_id) ); INSERT INTO platnosci1 VALUES (1, 3, 14.40, '2007-04-02 11:37:06'); INSERT INTO platnosci1 VALUES (2, 1, 28.30, '2007-05-14 11:37:18'); INSERT INTO platnosci1 VALUES (3, 2, 34.40, '2007-05-06 11:38:14'); INSERT INTO platnosci1 VALUES (4, 2, 25.60, '2007-05-07 11:38:39'); CREATE TABLE platnosci2 ( platnosc_id mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT, uzytkownik_id mediumint(8) UNSIGNED NOT NULL, kwota_platnosci decimal(10,2) NOT NULL, data_platnosci datetime NOT NULL, PRIMARY KEY (platnosc_id) ); INSERT INTO platnosci2 VALUES (1, 2, 68.20, '2007-04-06 11:37:06'); INSERT INTO platnosci2 VALUES (2, 3, 21.30, '2007-04-12 11:37:18'); INSERT INTO platnosci2 VALUES (3, 3, 54.40, '2007-05-06 11:38:14'); INSERT INTO platnosci2 VALUES (4, 1, 35.70, '2007-05-07 11:38:39');
Pytanie jakie chce do tego ulozyc to:
wszyscy uzytkownicy (tylko po jednym razie) w okresie od...do z podana iloscia zakupow w tym okresie oraz suma platnosci. Dodatkowo jeszcze kiedy jest ostatni termin platnosci.
uzytkownik_id | nazwisko | COUNT(ilosc_platnosci) | SUM(suma_platnosci) | data_platnosci(ta ostatnia)
Ja wklepalem cos takiego, ale nie dziala tak jak powinno:(
SELECT u.uzytkownik_id, u.plec, u.imie, u.nazwisko, COUNT('p1.uzytkownik_id') ilosc_platnosci, SUM(p1.kwota_platnosci) suma_platnosci, p1.data_platnosci, p2.data_platnosci FROM uzytkownicy u, platnosci1 p1, platnosci2 p2 WHERE u.uzytkownik_id = p1.uzytkownik_id AND u.uzytkownik_id = p2.uzytkownik_id AND p1.data_platnosci BETWEEN DATE ('2007-04-15') AND DATE ('2007-05-15') AND p2.data_platnosci BETWEEN DATE ('2007-04-15') AND DATE ('2007-05-15') GROUP BY u.nazwisko
Prosze o pomoc bo widze, ze strasznie mam tu wszystko namotane i nie moge sie polapac. Prosze o rady!
Pozdrawiam!
saren_as