Średnia wypłata MS SQL

Średnia wypłata MS SQL
PP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 33
0

Cześć!

Chciałbym obliczyć średnią miesięczną wypłatę pracowników. Potrzebna jest ona mi do wykresu.
Wyliczana jest ona z aktualnej (czyli, jeśli jest ważna od 02.2016, to w 03.2016 też musi być uwzględniona) Podstawy (tabela w załączniku), oraz z sumy ProwizjiZl (tabela Deals w załączniku) z konkretnego miesiąca. Oczywiście tabelę z użytkownikami posiadam.

woolfik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1611
  • Rejestracja: dni
  • Ostatnio: dni
0

No więc o co pytasz kolego?

AB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 229
0
pablo_pj napisał(a):

Cześć!

Chciałbym obliczyć średnią miesięczną wypłatę pracowników. Potrzebna jest ona mi do wykresu.
Wyliczana jest ona z aktualnej (czyli, jeśli jest ważna od 02.2016, to w 03.2016 też musi być uwzględniona) Podstawy (tabela w załączniku), oraz z sumy ProwizjiZl (tabela Deals w załączniku) z konkretnego miesiąca. Oczywiście tabelę z użytkownikami posiadam.

W czym problem? W SQLu średną liczy się przy pomocy funkcji agregującej avg.
Nie umiesz wysłać zapytania do bazy w PHP? Nie umiesz połączyć się z bazą za
pośrednictwem PHP? Bo jeśli nie umiesz napisać zapytania, to zapytaj na bazach danych.

Pozdrawiam

PP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 33
0

Moje najważniejsze pytanie, jak pobrać miesięczną sumę wypłat z tabeli Podstawa, ale np. dla ostatnich 6-ciu miesięcy

AB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 229
0
pablo_pj napisał(a):

Moje najważniejsze pytanie, jak pobrać miesięczną sumę wypłat z tabeli Podstawa, ale np. dla ostatnich 6-ciu miesięcy

W klauzuli where trzeba dać data >= początek and data <= koniec, gdzie początek i koniec to Twój zakres dat odpowiednio sformatowany dla
bazy mssql. można też użyć operatora between.

Może uda się nawet tak:
select avg( wyplata ) from wyplaty where data >= teraz() - 6miesiecy
Ale funkcji do operowania na dacie musisz doszukać sobie sam w dokumentacji.

https://msdn.microsoft.com/en-us/library/ms186724.aspx

Pozdrawiam

PP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 33
0

Mam takie coś:

Kopiuj
	WHERE 
		(YEAR(WazneOd) >= 2016 AND MONTH(WazneOd) >= 1) AND 
		((YEAR(WazneDo) <= 2016 AND MONTH(WazneDo) <= 6) OR WazneDo IS NULL) 
AB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 229
0

Działa?

PP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 33
0

Mam takie coś, może to komuś coś podpowie, co chcę zrobic

Kopiuj
SELECT 
	avg(p.[WysPodstawy]) AS 'avg'
	,sum(p.[WysPodstawy]) AS 'sum'
FROM [AspNetUsers] AS u
LEFT JOIN Podstawa AS p ON u.Id=p.UserId
LEFT JOIN Deals AS d ON u.Id=d.UserId
WHERE 
	(YEAR(p.WazneOd) <= 2016 AND MONTH(p.WazneOd) <= 1) AND 
	((YEAR(p.WazneDo) >= 2016 AND MONTH(p.WazneDo) >= 1) OR p.WazneDo IS NULL)
GROUP BY
	month(d.[DataSprzedazy])

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.