kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170327110702_Init/Stored procedures/sp_GetOsztalyokTanuloi.sql
2024-03-13 00:33:46 +01:00

174 lines
No EOL
6.8 KiB
Transact-SQL

GO
/****** Object: StoredProcedure [dbo].[sp_GetOsztalyokTanuloi] Script Date: 2016.03.22. 9:41:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Kelemen Attila>
-- Create date: <2016. 01. 08.>
-- Description: <Tanulók adatai osztályonként (minden osztály külön tábla)>
-- =============================================
CREATE PROCEDURE [dbo].[sp_GetOsztalyokTanuloi]
@intezmenyId int,
@tanevID int
AS
BEGIN
DECLARE @osztalyID INT = 0
DECLARE @osztalyNev VARCHAR(255)
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
--Osztályok nevei
SELECT T_OSZTALY_OSSZES.ID,
T_OSZTALYCSOPORT_OSSZES.C_NEV osztalyNev
INTO #Osztalyok
FROM T_OSZTALY_OSSZES
inner join T_OSZTALYCSOPORT_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID and T_OSZTALYCSOPORT_OSSZES.C_INTEZMENYID=@intezmenyId
inner join T_TANEV_OSSZES on T_TANEV_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.C_TANEVID and T_TANEV_OSSZES.TOROLT = 'F' and T_TANEV_OSSZES.C_INTEZMENYID=@intezmenyId
WHERE T_OSZTALY_OSSZES.TOROLT='F' and
T_TANEV_OSSZES.ID = @tanevID and
T_TANEV_OSSZES.C_INTEZMENYID= @IntezmenyId
ORDER BY T_OSZTALY_OSSZES.ID
--Az többi tábla osztálynevek szerinti elnevezéséhez kell
SELECT * FROM #Osztalyok
WHILE (1 = 1)
BEGIN
SELECT TOP 1 @osztalyID=ID, @osztalyNev = osztalyNev FROM #Osztalyok Jegyek WHERE ID > @osztalyID ORDER BY ID
IF @@ROWCOUNT = 0
BEGIN
BREAK;
END
--A WHILE CIKLUS MIDEN LÉPÉSÉBEN VISSZAAD EGY TÁBLÁT
SELECT distinct
C_NYOMTATASINEV TanuloNev,
C_OKTATASIAZONOSITO Azonosito,
C_NEME Neme,
C_SZULETESINEV SzuletesiNev,
C_SZULETESIHELY SzuletesiHely,
C_SZULETESIDATUM SzuletesiDatum,
C_ANYJANEVE AnyjaNeve,
C_ALLAMPOLGARSAGA Allampolgarsag,
TanuloCim.Elerhetoseg1 TanuloElerhetoseg1,
TanuloCim.Orszag1 TanuloOrszag1,
TanuloCim.Iranyitoszam1 TanuloIranyitoszam1,
TanuloCim.Varos1 TanuloVaros1,
TanuloCim.Kozterulet1 TanuloKozterulet1,
TanuloCim.KozteruletJellege1 TanuloKozteruletJellege1,
TanuloCim.Hazszam1 TanuloHazszam1,
TanuloCim.Emelet1 TanuloEmelet1,
TanuloCim.Ajto1 TanuloAjto1,
T_TELEFON_OSSZES.C_TELEFONSZAM Telefonszam1,
GondviseloCim.Elerhetoseg1 GondviseloElerhetoseg1,
GondviseloCim.Orszag1 GondviseloOrszag1,
GondviseloCim.Iranyitoszam1 GondviseloIranyitoszam1,
GondviseloCim.Varos1 GondviseloVaros1,
GondviseloCim.Kozterulet1 GondviseloKozterulet1,
GondviseloCim.KozteruletJellege1 GondviseloKozteruletJellege1,
GondviseloCim.Hazszam1 GondviseloHazszam1,
GondviseloCim.Emelet1 GondviseloEmelet1,
GondviseloCim.Ajto1 GondviseloAjto1,
T_FELHASZNALO_OSSZES.C_IGAZOLVANYSZAM IgazolvanySzam,
T_FELHASZNALO_OSSZES.C_TAJSZAM TAJSzam,
T_FELHASZNALO_OSSZES.C_ADOSZAM Adoszam,
T_FELHASZNALO_OSSZES.C_NYILVANTARTASISZAM Torzslapszam,
T_TANULO_OSSZES.C_DIAKIGAZOLVANYSZAM DiakigazolvanySzam,
T_FELHASZNALO_OSSZES.C_NYILVANTARTASKEZDETE NyilvantartasKezdete,
T_TANULO_OSSZES.C_MAGANTANULO Magantanulo,
T_TANULO_OSSZES.C_BEJARO Bejaro,
T_TANULO_OSSZES.C_ELOZOINTEZMENY ElozoIntezmeny,
ElsoTanev.Nev FelvetelTaneve,
T_OSZTALYCSOPORT_OSSZES.C_NEV Osztaly,
ElsoTanev.ElsoNap BelepesIdopontja,
--Kilepes idopontja
--Tanév: paraméterben kapott tanév neve
T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA Evfolyam,
T_TANTERV_OSSZES.c_nev,
Osztalyfonok.Nev
from T_FELHASZNALO_OSSZES
--Ha egy tanulóhoz több cím van hozzárendelve, a legkisebb ID-vel rendelkezőt adja vissza
JOIN (select * from
(select MIN(T_CIM_OSSZES.ID) CimID, T_CIM_OSSZES.C_FELHASZNALOID TanuloID FROM
T_CIM_OSSZES
WHERE T_CIM_OSSZES.TOROLT='F'
GROUP BY T_CIM_OSSZES.C_FELHASZNALOID) CimID
inner join
(select
T_CIM_OSSZES.ID,
T_CIM_OSSZES.C_FELHASZNALOID TanuloIDx,
T_CIM_OSSZES.C_CIMTIPUSA Elerhetoseg1,
T_CIM_OSSZES.C_ORSZAG Orszag1,
T_CIM_OSSZES.C_IRANYITOSZAM IranyitoSzam1,
T_CIM_OSSZES.C_VAROS Varos1,
T_CIM_OSSZES.C_KOZTERULET Kozterulet1,
T_CIM_OSSZES.C_KOZTERULETJELLEGE KozteruletJellege1,
T_CIM_OSSZES.C_HAZSZAM Hazszam1,
T_CIM_OSSZES.C_EMELET Emelet1,
T_CIM_OSSZES.C_AJTO Ajto1
from T_CIM_OSSZES
) CimAdat ON CimID.CimID = CimAdat.ID) TanuloCim on T_FELHASZNALO_OSSZES.ID = TanuloCim.TanuloID
INNER JOIN T_TANULOCSOPORT_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_TANULOCSOPORT_OSSZES.C_TANULOID
INNER JOIN T_OSZTALYCSOPORT_OSSZES ON T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID=T_OSZTALYCSOPORT_OSSZES.ID
INNER JOIN T_OSZTALY_OSSZES ON T_OSZTALYCSOPORT_OSSZES.ID = T_OSZTALY_OSSZES.ID
LEFT JOIN T_TELEFON_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_TELEFON_OSSZES.C_FELHASZNALOID
INNER JOIN T_FELHASZNALOBELEPES_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_FELHASZNALOBELEPES_OSSZES.C_FELHASZNALOID
LEFT JOIN T_GONDVISELO_OSSZES ON T_FELHASZNALOBELEPES_OSSZES.C_GONDVISELOID = T_GONDVISELO_OSSZES.ID
--Ha egy gondviselőhöz több cím van hozzárendelve, a legkisebb ID-vel rendelkezőt adja vissza
left JOIN ( select * from
(select MIN(T_CIM_OSSZES.ID) CimID, T_CIM_OSSZES.C_FELHASZNALOID GondvisID FROM
T_CIM_OSSZES
WHERE T_CIM_OSSZES.TOROLT='F'
GROUP BY T_CIM_OSSZES.C_FELHASZNALOID) CimID
inner join
(select
T_CIM_OSSZES.ID,
T_CIM_OSSZES.C_FELHASZNALOID GondviseloID,
T_CIM_OSSZES.C_CIMTIPUSA Elerhetoseg1,
T_CIM_OSSZES.C_ORSZAG Orszag1,
T_CIM_OSSZES.C_IRANYITOSZAM IranyitoSzam1,
T_CIM_OSSZES.C_VAROS Varos1,
T_CIM_OSSZES.C_KOZTERULET Kozterulet1,
T_CIM_OSSZES.C_KOZTERULETJELLEGE KozteruletJellege1,
T_CIM_OSSZES.C_HAZSZAM Hazszam1,
T_CIM_OSSZES.C_EMELET Emelet1,
T_CIM_OSSZES.C_AJTO Ajto1
FROM
T_CIM_OSSZES
) CimAdat ON CimID.CimID = CimAdat.ID) GondviseloCim on T_GONDVISELO_OSSZES.ID = GondviseloCim.GondviseloID
INNER JOIN T_TANULO_OSSZES ON T_FELHASZNALO_OSSZES.ID = T_TANULO_OSSZES.ID
INNER JOIN
(SELECT T_TANEV_OSSZES.ID, T_TANEV_OSSZES.C_NEV Nev, T_TANEV_OSSZES.C_ELSOTANITASINAP ElsoNap
FROM T_TANEV_OSSZES) ElsoTanev
ON T_TANULO_OSSZES.C_FELVETELTANEVEID = ElsoTanev.ID
LEFT JOIN T_TANTERV_OSSZES on T_OSZTALY_OSSZES.C_TANTERVID = t_tanterv_OSSZES.id
INNER JOIN (SELECT ID, C_NYOMTATASINEV Nev FROM T_FELHASZNALO_OSSZES) Osztalyfonok ON T_OSZTALY_OSSZES.C_OSZTALYFONOKID = Osztalyfonok.ID
WHERE T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID = @osztalyID
AND T_TANULOCSOPORT_OSSZES.TOROLT = 'F'
AND T_TANULOCSOPORT_OSSZES.C_BELEPESDATUM < GETDATE()
AND (T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM is null or T_TANULOCSOPORT_OSSZES.C_KILEPESDATUM >= GETDATE())
AND T_FELHASZNALO_OSSZES.TOROLT='F'
AND T_OSZTALY_OSSZES.TOROLT='F'
AND T_OSZTALYCSOPORT_OSSZES.TOROLT='F'
AND T_TANULOCSOPORT_OSSZES.C_INTEZMENYID=@intezmenyId
AND T_OSZTALY_OSSZES.C_ALINTEZMENYID=@intezmenyId
--AND GondviseloCim.ID is not null
END
DROP TABLE #Osztalyok
END
GO