Średnia wypłata MS SQL

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.

0

No więc o co pytasz kolego?

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

0

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

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

0

Mam takie coś:

	WHERE 
		(YEAR(WazneOd) >= 2016 AND MONTH(WazneOd) >= 1) AND 
		((YEAR(WazneDo) <= 2016 AND MONTH(WazneDo) <= 6) OR WazneDo IS NULL) 
0

Działa?

0

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

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1