Witam
Próbuję skonstruować polecenie w którym oprócz pobierania bezpośredniego danych z wyraźnie określonych pól w wyraźnie określonych tabelach, chce pobrać 2 wartości, które występujątylko jako składowe całości, i w dodatku chce to zrobić w 1 poleceniu.
Obecnie dane wsadowe wyglądają tak:
[Tabela [dbo].[Dni]
Tabela [dbo].[Pracownik]
Tabela [dbo].[Parametry]
Wstępnie polecenie wygląda tak:
SELECT k.Id_LS, k.Pracownik_Imie, k.Pracownik_Nazwisko, k.Pracownik_Etat, e.Kwartal_Id,
e.Parametry_OstatniCiagPrzepracowanychDni, e.Parametry_GodzinaOstatniDzienMiesiaca,
e.Parametry_PoprzedniaWolnaNiedziala, e.LiczbaDniWolnychWKwartale,
e.LiczbaDniPrzepracowanychWKwartale, p.Dni_Urlop, p.Dni_L4, p.Dni_Inne, p.Rok_Id, p.Miesiac_Id
FROM [dbo].[Pracownik] AS k
INNER JOIN [dbo].[Parametry] AS e ON e.Pracownik_Id = k.Pracownik_Id
LEFT JOIN [dbo].[Dni] AS p on p.Pracownik_Id = k.Pracownik_Id AND p.Rok_Id = e.Rok_Id AND p.Miesiac_Id = e.Miesiac_Id
WHERE e.Rok_Id = (SELECT Rok_Id FROM [dbo].[Rok] WHERE Rok = '" + wybranyRok + "')
AND e.Miesiac_Id = '" + wybranyMiesiąc + "'
AND k.Dzial_Id = (SELECT Dzial_Id FROM [dbo].[Dzial] WHERE Dzial = '" + wybranyDział + "')
ale niestety ani e.LiczbaDniWolnychWKwartale, ani ** e.LiczbaDniPrzepracowanychWKwartale** ponieważ normalnie nie występują w tabeli.
Ale za to mogę je zliczyć poleceniem SUM!
dla ** e.LiczbaDniPrzepracowanychWKwartale** zliczając pola Dni_Przepracowane - dla miesięcy odpowiadających szukanemu kwartałowi i oczywiście dla odpowiedniego roku i pracownika w najprostszy sposób:
SELECT SUM (Dni_Przepracowane)
FROM [dbo].[Dni]
WHERE Pracownik_Id=1 AND Rok_Id=1 AND Miesiac_Id>=1 AND Miesiac_Id<=3;
ale dla e.LiczbaDniWolnychWKwartale muszę zsumować wartości pól Dni_UstawowoWOlne, Dni_Urlop, Dni_L4, Dni_Inne.
W osobnych poleceniach wiem jak to zrobić, ale jak pobrać te dane w pojedynczym poleceniu, jako pojedynczą skumulowaną wartość, i to w dodatku w wyniku będącą parametrem?
Może ktoś podpowiedzieć jak do tego podejść?