Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sumowanie elementów z różnych tabel
myschool
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 8.01.2015

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


Witam
Mam utworzone tabele (posiadające ten sam klucz id_pracownika) wypełnione danymi:

"Pracownicy" z kolumnami m.in "id_pracownika","imie","nazwisko"
"godziny" z kolumnami "id_pracownika","data","ilosc_godzin"
"nadgodziny" z kolumnami "id_pracownika","data","ilosc_nadgodzin"
"premie" z kolumnami "id_pracownika","data","wynagrodzenie"

Muszę utworzyć zapytanie, które podaje całkowite zarobki każdego pracownika (wyświetla: imie nazwisko zarobki) wliczając w to premie i nadgodziny za okres rozliczeniowy (np 2014-11-01 - 2014-11-30). Drugim zapytaniem jest wypisanie ilości nadgodzin konkretnego pracownika w konkretnym okresie czasu (2014-01-01 - 2014-12-31)
Zatem całomiesięczny zarobek będzie wynosił (20*suma(ilosc_godzin)+30*sum(ilosc_nadgodzin)+sum(wynagrodzenie)).

Proszę o pomoc.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

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


  1. SELECT tmp.imie,tmp.nazwisko,tmp.DATA,
  2. 20*SUM(ilosc*IF(typ=1,1,0))+30*SUM(ilosc*IF(typ=2,1,0))+SUM(ilosc*IF(typ=3,1,0)) AS suma
  3. FROM(
  4. SELECT p.id_pracownik,p.imie,p.nazwisko,g.DATA,SUM(g.ilosc_godzin) AS ilosc,1 AS typ
  5. FROM pracownik AS p, godzina AS g WHERE p.id_pracownik=g.id_pracownik
  6. GROUP BY p.id_pracownik,g.DATA
  7. UNION
  8. SELECT p.id_pracownik,p.imie,p.nazwisko,n.DATA,SUM(n.ilosc_nadgodzin) AS ilosc,2 AS typ
  9. FROM pracownik AS p, nadgodzina AS n WHERE p.id_pracownik=n.id_pracownik
  10. GROUP BY p.id_pracownik,n.DATA
  11. UNION
  12. SELECT p.id_pracownik,p.imie,p.nazwisko,pr.DATA,SUM(pr.wynagrodzenie) AS ilosc,3 AS typ
  13. FROM pracownik AS p, premia AS pr WHERE p.id_pracownik=pr.id_pracownik
  14. GROUP BY p.id_pracownik,pr.DATA)
  15. AS tmp
  16. GROUP BY tmp.id_pracownik,tmp.DATA


Ten post edytował trueblue 11.01.2015, 19:40:53
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 12.10.2025 - 12:12