Cześć,
Jestem dość nowy w SQL i próbuje utworzyć 1 zapytanie lecz nie do końca mi się to udaje.
Otóż mamy 5 tabel
Pracownik_grupa, Pracownik_lista, Pracownik, Użytkownik Pracownik_ranga.
Teraz próbuje wyświetlić Grupę i ile pracowników ma zakładając pewne kryteria.
Użytkownik może mieć 10 Pracowników
Do zliczeń pracowników wliczamy tylko z danego użytkownika więc jeśli mamy 2 użytkowników którzy mają 10 pracowników to liczba tej grupy to 2.
Pracownik_grupa
ID,Nazwa
1,G1
2,G2
3,G3
Pracownik_Lista
ID,Pracownik_ID,Grupa_ID,Ranga_ID
1,1,1,2
2,2,1,2
3,3,1,2
4,4,1,2
5,5,1,2
6,6,2,2
Pracownik
ID,Nazwa,Uzytkownik_ID
1,AGATA,1
2,JOASIA,1
3,AGA,1
4,JANUSZ,2
5,PAWEŁ,2
6,MATEUSZ,2
Użytkownik
ID,Nazwa,Haslo,stan
1,N1,PASS1,23
2,N2,PASS2,44
Ranga_Grupa
ID,PRACOWNIK_GRUPA_ID,NAZWA,POZIOM
1,1,LIDER,3
2,1,ZCA,2
3,1,PARC,1
4,2,LIDER,3
5,2,ZCA,2
6,2,PARC,1
7,3,LIDER,3
8,3,ZCA,2
9,3,PARC,1
Moje zapytanie, wyświetla ilość ale nie wiem jak usunąć duble z danego użytkownika
select g.id,
g.NAZWA,
(
select count(gms.id) from Pracownik_Lista as gms
LEFT JOIN Pracownik p ON p.id = gms.Pracownik_ID
LEFT JOIN Użytkownik a ON a.id = p.Uzytkownik_ID
LEFT JOIN Ranga_Grupa gr ON (gr.PRACOWNIK_GRUPA_ID = gms.Grupa_ID and gr.id = gms.Ranga_ID)
where gms.guild_id = g.id and a.premdays > 0 and (gr.POZIOM = 3 or gr.POZIOM = 2)
) as member
from Pracownik_grupa as g