93 lines
3.9 KiB
Transact-SQL
93 lines
3.9 KiB
Transact-SQL
/* ==================================================================================== */
|
||
/* Description: Intézmény szintű lekérdezés adott pTanevId szerint a tanulók névsoráról */
|
||
/* ==================================================================================== */
|
||
DROP PROCEDURE IF EXISTS uspGetTanulokNevsoraOsszesitoStatisztika
|
||
GO
|
||
|
||
CREATE PROCEDURE [dbo].[uspGetTanulokNevsoraOsszesitoStatisztika]
|
||
@pTanevId int
|
||
|
||
AS BEGIN
|
||
SET NOCOUNT ON;
|
||
|
||
-- Tanév
|
||
SELECT
|
||
tv.C_NEV
|
||
FROM T_TANEV_OSSZES tv
|
||
WHERE tv.TOROLT = 'F' AND tv.ID = @pTanevId
|
||
|
||
-- Osztaly/Csoport -ok félévvége dátumai
|
||
DROP TABLE IF EXISTS #ocstr
|
||
CREATE TABLE #ocstr (
|
||
ocsId int
|
||
,FelevVegeDatum datetime
|
||
)
|
||
|
||
INSERT INTO #ocstr (
|
||
ocsId
|
||
,FelevVegeDatum
|
||
) SELECT
|
||
o.ID
|
||
--,ocs.C_NEV
|
||
,CASE WHEN otr.C_OSZTALYCSOPORTID IS NOT NULL AND ktr.ID IS NOT NULL THEN ktr.C_DATUM
|
||
WHEN otr.C_OSZTALYCSOPORTID IS NULL AND ktr0.ID IS NOT NULL THEN ktr0.C_DATUM
|
||
ELSE tr.C_DATUM
|
||
END AS FelevVegeDatum
|
||
FROM T_OSZTALY_OSSZES o
|
||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
|
||
INNER JOIN T_TANEVRENDJE_OSSZES tr ON tr.C_TANEVID = o.C_ALTANEVID AND tr.C_NAPTIPUSA = 1400 AND tr.TOROLT = 'F'
|
||
LEFT JOIN T_TANEVRENDJE_OSSZES ktr0 ON ktr0.C_TANEVID = o.C_ALTANEVID AND ktr0.C_NAPTIPUSA = 7605 AND ocs.C_KERESZTFELEVES = 'T' AND ktr0.C_OSSZESCSOPORTRAVONATKOZIK = 'T' AND ktr0.TOROLT = 'F'
|
||
LEFT JOIN T_TANEVRENDJE_OSSZES ktr ON ktr.C_TANEVID = o.C_ALTANEVID AND ktr.C_NAPTIPUSA = 7605 AND ocs.C_KERESZTFELEVES = 'T' AND ktr.C_OSSZESCSOPORTRAVONATKOZIK = 'F' AND ktr.TOROLT = 'F'
|
||
LEFT JOIN T_OSZTALYCSOPORT_TANEVRENDJE otr ON otr.C_OSZTALYCSOPORTID = o.ID AND otr.C_TANEVRENDJEID = ktr.ID
|
||
WHERE o.TOROLT = 'F' AND o.C_ALTANEVID = @pTanevId
|
||
|
||
-- I. félév
|
||
SELECT
|
||
i.C_AZONOSITO AS Intezmeny
|
||
,fh.C_OKTATASIAZONOSITO AS OktatasiAzonosito
|
||
,C_NYOMTATASINEV AS Nev
|
||
,ocs.C_NEV AS Osztaly
|
||
,tcs.C_BELEPESDATUM AS BelepesDatuma
|
||
,tcs.C_KILEPESDATUM AS KilepesDatuma
|
||
,ocs.C_KERESZTFELEVES AS KeresztFeleves
|
||
FROM T_FELHASZNALO_OSSZES fh
|
||
INNER JOIN T_TANULO_OSSZES t ON t.ID = fh.ID AND t.TOROLT = 'F'
|
||
INNER JOIN T_TANEV_OSSZES tv ON tv.ID = fh.C_TANEVID AND tv.TOROLT = 'F'
|
||
INNER jOIN T_INTEZMENY_OSSZES i ON i.ID = fh.C_INTEZMENYID AND i.TOROLT = 'F'
|
||
-- osztályok, illetve itt a LEFT miatt megjelennek azok, akiknek soha nem volt még osztálya
|
||
LEFT JOIN T_TANULOCSOPORT_OSSZES tcs
|
||
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcs.C_OSZTALYCSOPORTID AND o.TOROLT = 'F'
|
||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
|
||
INNER JOIN #ocstr tr ON tr.ocsId = ocs.ID -- félév
|
||
ON tcs.C_TANULOID = fh.ID AND tcs.TOROLT = 'F'
|
||
WHERE fh.TOROLT = 'F'
|
||
AND fh.C_TANEVID = @pTanevId
|
||
AND (tcs.ID IS NULL OR tcs.C_BELEPESDATUM <= tr.FelevVegeDatum)
|
||
ORDER BY Nev, Osztaly, BelepesDatuma
|
||
|
||
-- II. félév
|
||
SELECT
|
||
i.C_AZONOSITO AS Intezmeny
|
||
,fh.C_OKTATASIAZONOSITO AS OktatasiAzonosito
|
||
,C_NYOMTATASINEV AS Nev
|
||
,ocs.C_NEV AS Osztaly
|
||
,tcs.C_BELEPESDATUM AS BelepesDatuma
|
||
,tcs.C_KILEPESDATUM AS KilepesDatuma
|
||
,ocs.C_KERESZTFELEVES AS KeresztFeleves
|
||
FROM T_FELHASZNALO_OSSZES fh
|
||
INNER JOIN T_TANULO_OSSZES t ON t.ID = fh.ID AND t.TOROLT = 'F'
|
||
INNER JOIN T_TANEV_OSSZES tv ON tv.ID = fh.C_TANEVID AND tv.TOROLT = 'F'
|
||
INNER jOIN T_INTEZMENY_OSSZES i ON i.ID = fh.C_INTEZMENYID AND i.TOROLT = 'F'
|
||
-- osztályok
|
||
INNER JOIN T_TANULOCSOPORT_OSSZES tcs
|
||
INNER JOIN T_OSZTALY_OSSZES o ON o.ID = tcs.C_OSZTALYCSOPORTID AND o.TOROLT = 'F'
|
||
INNER JOIN T_OSZTALYCSOPORT_OSSZES ocs ON ocs.ID = o.ID AND ocs.TOROLT = 'F'
|
||
INNER JOIN #ocstr tr ON tr.ocsId = ocs.ID -- félév
|
||
ON tcs.C_TANULOID = fh.ID AND tcs.TOROLT = 'F'
|
||
WHERE fh.TOROLT = 'F' --AND GETDATE() >= tr.FelevVegeDatum
|
||
AND fh.C_TANEVID = @pTanevId
|
||
AND ((tcs.C_KILEPESDATUM > tr.FelevVegeDatum AND tcs.C_KILEPESDATUM <= tv.C_UTOLSONAP) OR tcs.C_KILEPESDATUM IS NULL)
|
||
ORDER BY Nev, Osztaly, BelepesDatuma
|
||
|
||
END
|
||
GO
|