Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wyciąganie wartości do wykresu podzielone na miesiące
Forum PHP.pl > Forum > Przedszkole
casperii
Panowie zastanawiam się w jaki sposób stworzyć mam zapytanie do bazy żeby później móc wyciągnąć dane (miesięczna wypłata, miesięczna premia) do wykresu?

załóżmy mamy tabelkę:

data, praca_od, praca_do, stawka_godzinowa, user, premia.

  1. select * from `wyplaty` where `user` = $user;


chciałbym teraz wyciągnąć ile zarobił i ile dostał premii user Kowalski w styczniu ,lutym, marcu, kwietniu.

Czy da się to jakoś osiągnąć samym SQLem ?
Czy może lepiej po każdym zakończonym miesiącu wstawiać poprzedni miesiąc z wartością wyplata, premia do bazy np poprzez crona?

No i jeszcze pytanie które mnie nurtuje co z pozostałymi miesiącami które jeszcze nie zakończyły się czyli nie ma ich w bazie czyli nie mam wartości to wyświetlenia, rozumiem, że wtedy dla każdego miesiąca musiałbym robić warunek, który by sprawdzał czy istnieje jeśli nie to 0 ?
nospor
Zwykle
GROUP BY rok-miesiac
i po sprawie

Co do brakujacych miesiecy to po co jakies warunki i 0? Nie ma miesiac to nie wstawiasz nic a nie zadne 0
casperii
sprawdzisz kolego czy jest optymalnie skonfigurowane zapytanie?

  1. SELECT user, SUM(premia) AS premia FROM `wyplaty` WHERE `user` = $user AND YEAR(`data`) = "'.$rok.'" GROUP BY DATA DESC ;


tak bym pobrał dla premia, ale jak zrobić w zapytaniu podsumowanie praca_od, praca_do x stawka_godzinowa i sprawdzenie ile to wynosi ?
nospor
w WHERE ma byc rok
w GROUP BY ma byc grupowanie po polu a nie po warunku
casperii
Dobra poradziłem sobie z tym drugim smile.gif


  1. SELECT SUM( (time_to_sec(`praca_do`) - time_to_sec(`praca_od`))/3600 * `stawka_godzinowa`) AS `wyplata` FROM `wyplaty` WHERE `user` = $user AND YEAR(`data`) = '2017' GROUP BY MONTH(`data`)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.