kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/uspGetAdminDashboardStatisztika.sql
2024-03-13 00:33:46 +01:00

118 lines
4.1 KiB
Transact-SQL

DROP PROCEDURE IF EXISTS uspGetAdminDashboardStatisztika
GO
CREATE PROCEDURE uspGetAdminDashboardStatisztika
@pTanevId int
,@pDatum datetime
,@pTanarAlkalmazottMunkakor int = 8384
AS
BEGIN
SET NOCOUNT ON;
SELECT
ia.C_NEV AS IntezmenyNev
,i.C_AZONOSITO AS IntezmenyAzonosito
,i.C_ALTERNATIVAZONOSITO AS IntezmenyAlternativAzonosito
,tv.C_NEV AS TanevNev
,(SELECT
C_NEV
FROM T_TANEV_OSSZES adat
WHERE adat.C_INTEZMENYID = i.ID
AND adat.TOROLT = 'F'
AND adat.C_AKTIV = 'T'
) AS AktivTanevNeve
,(SELECT
COUNT(1)
FROM T_ALKALMAZOTT_OSSZES alkalmazott
INNER JOIN T_MUNKAUGYIADATOK munkaugyiadat ON munkaugyiadat.C_ALKALMAZOTTID = alkalmazott.ID
AND ISNULL(munkaugyiadat.C_ALKALMAZASKEZDETE, GETDATE()) <= GETDATE()
AND ISNULL(munkaugyiadat.C_ALKALMAZASMEGSZUNESE, GETDATE()) >= GETDATE()
AND munkaugyiadat.C_TANEVID = alkalmazott.C_ALTANEVID
AND munkaugyiadat.TOROLT = 'F'
INNER JOIN T_MUNKAKORTIPUS_OSSZES mkt ON mkt.ID = munkaugyiadat.C_MUNKAKORTIPUSA AND mkt.C_ALTANEVID = munkaugyiadat.C_TANEVID AND mkt.TOROLT = 'F'
WHERE alkalmazott.TOROLT = 'F'
AND alkalmazott.C_ALTANEVID = tv.ID
AND mkt.C_ALKALMAZOTTMUNKAKORTIPUSID = @pTanarAlkalmazottMunkakor
) AS AlkalmazottakSzama
,(SELECT
COUNT(1)
FROM T_TANULO_OSSZES t
LEFT JOIN (
SELECT
t.ID TanuloId
,tcs.C_OSZTALYCSOPORTID OsztalyId
FROM T_TANULO_OSSZES t
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = t.ID
AND tcs.TOROLT='F'
AND tcs.C_BELEPESDATUM <= @pDatum
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @pDatum)
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID
AND tta.TOROLT='F'
WHERE t.C_ALTANEVID = tv.ID
) AS tanugyiAdatok ON tanugyiAdatok.TanuloId = t.ID
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = tanugyiAdatok.TanuloId
AND tcs.C_OSZTALYCSOPORTID = tanugyiAdatok.OsztalyId
AND tcs.TOROLT='F'
AND tcs.C_BELEPESDATUM <= CAST(GETDATE() AS DATE)
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > CAST(GETDATE() AS DATE))
WHERE t.TOROLT = 'F'
AND t.C_ALTANEVID = tv.ID
) AS AktivTanulokSzama
,(SELECT
COUNT(1)
FROM T_TANULO_OSSZES t
LEFT JOIN (
SELECT
t.ID TanuloId
FROM T_TANULO_OSSZES t
INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.C_TANULOID = t.ID
AND tcs.TOROLT='F'
AND tcs.C_BELEPESDATUM <= @pDatum
AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM > @pDatum)
INNER JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.C_TANULOCSOPORTID = tcs.ID
AND tta.TOROLT='F'
WHERE t.C_ALTANEVID = tv.ID
) AS tanugyiAdatok ON tanugyiAdatok.TanuloId = t.ID
WHERE t.TOROLT = 'F'
AND t.C_ALTANEVID = tv.ID
) AS TanulokSzama
,(SELECT
COUNT(1)
FROM T_TEREM_OSSZES adat
WHERE adat.C_TANEVID = tv.ID
AND adat.TOROLT = 'F'
) AS TermekSzama
,(SELECT
COUNT(1)
FROM T_ESZKOZ_OSSZES adat
WHERE adat.C_TANEVID = tv.ID
AND adat.TOROLT = 'F'
) AS EszkozokSzama
,(SELECT
SUM(adat.C_ORASZAM)
FROM T_FOGLALKOZAS_OSSZES adat
WHERE adat.C_TANEVID = tv.ID
AND adat.TOROLT = 'F'
) AS TtfOrakSzama
,(SELECT
COUNT(1)
FROM T_OSZTALY_OSSZES adat
WHERE adat.C_ALTANEVID = tv.ID
AND adat.TOROLT = 'F'
) AS OsztalyokSzama
,(SELECT
COUNT(1)
FROM T_CSOPORT_OSSZES adat
WHERE adat.C_ALTANEVID = tv.ID
AND adat.TOROLT = 'F'
) AS CsoportokSzama
FROM T_TANEV_OSSZES tv
INNER JOIN T_INTEZMENY i ON i.ID = tv.C_INTEZMENYID
INNER JOIN T_INTEZMENYADATOK_OSSZES ia ON ia.C_INTEZMENYID = tv.C_INTEZMENYID
AND ia.C_TANEVID = tv.ID
AND ia.TOROLT = 'F'
WHERE tv.TOROLT = 'F'
AND tv.ID = @pTanevId
END
GO