crazyluki 114 Zgłoś post Napisano Grudzień 28, 2010 Witam, posiadam mały problem z SQL którego nijak nie mogę rozwikłać. posiadam tabele w której mam następujące kolumny: id (int) user-id (int) date (date) licznik (int) do tabeli dla każdego użytkownika raz dziennie dodawany jest nowy rekord z aktualną datą oraz wartością licznik (int). mam nastepujący problem ( i chciałby go rozwiązać na poziomie SQL a nie kodu php). Chciałbym pobrać dodatkową informację tj wartość poprzedniego rekordu licznik i sprawdzić jaki jest przyrost tego dnia. Wiem że dla pierwszego rekordu będzie błąd albo 0 bo nie ma poprzedniego rekordu;-) silnik bazy danych to mysql jakby ktoś miał jakieś specyficzne zapytanie;-) Udostępnij ten post Link to postu Udostępnij na innych stronach
Miłosz 2311 Zgłoś post Napisano Grudzień 28, 2010 Ale przyrost dla konkretnego usera? Chyba chodzi Ci o rekord z poprzedniego dnia dla danego usera Bo nie bardzo rozumiem, jak chcesz dla niego obliczyć jakiśtam przyrost, skoro w poprzednim rekordzie będzie inny user. Udostępnij ten post Link to postu Udostępnij na innych stronach
beliq 442 Zgłoś post Napisano Grudzień 28, 2010 do tabeli dla każdego użytkownika raz dziennie dodawany jest nowy rekord z aktualną datą oraz wartością licznik (int). mam nastepujący problem ( i chciałby go rozwiązać na poziomie SQL a nie kodu php). Chciałbym pobrać dodatkową informację tj wartość poprzedniego rekordu licznik i sprawdzić jaki jest przyrost tego dnia. Wydaje mi się( o ile dobrze zrozumiałem meritum), że to niemożliwe bez dopisania kilku linijek kodu PHP. Wiem że dla pierwszego rekordu będzie błąd albo 0 bo nie ma poprzedniego rekordu;-) Ustaw default dla pola licznik na 0 i nie będzie błędu. Udostępnij ten post Link to postu Udostępnij na innych stronach
ahes 83 Zgłoś post Napisano Grudzień 28, 2010 SELECT today.licznik-yesterday.licznik FROM tabela today, tabela yesterday WHERE today.licznik = CURRENT_DATE AND yesterday.licznik = DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY); Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Grudzień 28, 2010 SELECT t1.`user-id`,t1.licznik-t2.licznik AS przyrost FROM test AS t1, test AS t2 WHERE t1.`user-id`=t2.`user-id` AND t1.data=CURRENT_DATE AND t2.data=DATE_ADD(CURRENT_DATE,INTERVAL -1 DAY) PS. Nie używaj jako nazwy pół nazw które są nazwami typów (w tym wypadku date) @ahes: Jeszcze trzeba te dane złączyć po user-id Udostępnij ten post Link to postu Udostępnij na innych stronach