Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]wyciąganie wartości do wykresu podzielone na miesiące
casperii
post 20.05.2017, 14:01:43
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post 20.05.2017, 23:00:40
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
casperii
post 21.05.2017, 09:58:50
Post #3





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


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 ?


Ten post edytował casperii 21.05.2017, 10:12:29
Go to the top of the page
+Quote Post
nospor
post 21.05.2017, 10:06:04
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




w WHERE ma byc rok
w GROUP BY ma byc grupowanie po polu a nie po warunku


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
casperii
post 21.05.2017, 10:12:38
Post #5





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


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`)


Ten post edytował casperii 21.05.2017, 18:34:21
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 16:37