174 lines
No EOL
6.8 KiB
Transact-SQL
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 |