101 lines
4.3 KiB
Transact-SQL
101 lines
4.3 KiB
Transact-SQL
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
-- =============================================
|
|
-- Author: <Hoffmann Zsolt>
|
|
-- Create date: <2016.07.27>
|
|
-- Description: <Osztályok éves óraszáma>
|
|
-- =============================================
|
|
|
|
IF OBJECT_ID('sp_GetOsztalyokEvesOraszama') IS NOT NULL BEGIN
|
|
DROP PROCEDURE sp_GetOsztalyokEvesOraszama
|
|
END
|
|
GO
|
|
|
|
CREATE PROCEDURE [sp_GetOsztalyokEvesOraszama]
|
|
@tanevID int
|
|
AS
|
|
BEGIN
|
|
DECLARE @osztalyID INT = 0
|
|
DECLARE @osztalyNev VARCHAR(255)
|
|
DECLARE @HetekSzama INT = 0
|
|
|
|
SET NOCOUNT ON;
|
|
|
|
select
|
|
@HetekSzama = DATEDIFF(ww, T_TANEV_OSSZES.C_ELSOTANITASINAP, T_TANEV_OSSZES.C_UTOLSOTANITASINAP)
|
|
from T_TANEV_OSSZES
|
|
where TOROLT = 'F'
|
|
and ID = @tanevID
|
|
|
|
select
|
|
T_OSZTALYCSOPORT_OSSZES.ID,
|
|
T_OSZTALYCSOPORT_OSSZES.C_NEV Nev
|
|
into #Osztalyok
|
|
from T_OSZTALYCSOPORT_OSSZES
|
|
inner join T_OSZTALY_OSSZES on T_OSZTALY_OSSZES.ID = T_OSZTALYCSOPORT_OSSZES.ID and T_OSZTALY_OSSZES. TOROLT = 'F'
|
|
where T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
|
|
and T_OSZTALYCSOPORT_OSSZES.C_TANEVID = @tanevID
|
|
|
|
SELECT * FROM #Osztalyok
|
|
|
|
WHILE (1 = 1)
|
|
BEGIN
|
|
SELECT TOP 1 @osztalyID=ID, @osztalyNev = Nev FROM #Osztalyok Osztalyok 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
|
|
T_FELHASZNALO_OSSZES.C_NYOMTATASINEV TanuloNev,
|
|
T_TANTARGY_OSSZES.C_NEV TantargyNev,
|
|
case
|
|
when T_TANTARGY_OSSZES.C_FOTARGYE = 'T' then T_TANTARGY_OSSZES.C_NEV
|
|
when T_TANTARGY_OSSZES.C_FOTARGYE = 'F' and T_TANTARGY_OSSZES.C_FOTARGYID is not null then FT.C_NEV
|
|
else ''
|
|
end as FotargyNev,
|
|
isnull(case
|
|
when T_ORATERVTARGY_OSSZES.C_EVESORASZAM = 0 then HETEK.HetekSzama * T_FOGLALKOZAS_OSSZES.C_ORASZAM
|
|
when T_ORATERVTARGY_OSSZES.C_EVESORASZAM > 0 and (HETEK.HetekSzama * T_FOGLALKOZAS_OSSZES.C_ORASZAM) > T_ORATERVTARGY_OSSZES.C_EVESORASZAM then HETEK.HetekSzama * T_FOGLALKOZAS_OSSZES.C_ORASZAM
|
|
else T_ORATERVTARGY_OSSZES.C_EVESORASZAM
|
|
end, 0) as EvesOraszam
|
|
from T_FOGLALKOZAS_OSSZES
|
|
inner join T_TANULOCSOPORT_OSSZES on T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID = T_FOGLALKOZAS_OSSZES.C_OSZTALYCSOPORTID and T_TANULOCSOPORT_OSSZES.TOROLT = 'F'
|
|
inner join T_OSZTALYCSOPORT_OSSZES on T_OSZTALYCSOPORT_OSSZES.ID = T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID and T_OSZTALYCSOPORT_OSSZES.TOROLT = 'F'
|
|
inner join T_FELHASZNALO_OSSZES on T_FELHASZNALO_OSSZES.ID = T_TANULOCSOPORT_OSSZES.C_TANULOID and T_FELHASZNALO_OSSZES.TOROLT = 'F'
|
|
inner join T_TANTARGY_OSSZES on T_TANTARGY_OSSZES.ID = T_FOGLALKOZAS_OSSZES.C_TANTARGYID and T_TANTARGY_OSSZES.TOROLT = 'F'
|
|
left join T_TANTARGY_OSSZES FT on FT.ID = T_TANTARGY_OSSZES.C_FOTARGYID and FT.TOROLT = 'F'
|
|
left join T_ORATERV_OSSZES on T_ORATERV_OSSZES.C_EVFOLYAM = T_OSZTALYCSOPORT_OSSZES.C_EVFOLYAMTIPUSA
|
|
and T_ORATERV_OSSZES.C_INTEZMENYID = T_FOGLALKOZAS_OSSZES.C_INTEZMENYID
|
|
and T_ORATERV_OSSZES.C_TANEVID = @tanevID
|
|
and T_ORATERV_OSSZES.TOROLT = 'F'
|
|
left join T_ORATERVTARGY_OSSZES on T_ORATERVTARGY_OSSZES.C_ORATERVID = T_ORATERV_OSSZES.ID
|
|
and T_ORATERVTARGY_OSSZES.C_TANTARGYID = T_TANTARGY_OSSZES.ID
|
|
and T_ORATERVTARGY_OSSZES.TOROLT = 'F'
|
|
left join
|
|
(
|
|
select
|
|
F.ID TanuloId,
|
|
case
|
|
when TCS.C_BELEPESDATUM is not null and TCS.C_KILEPESDATUM is null then DATEDIFF(WW, TCS.C_BELEPESDATUM, TE.C_UTOLSOTANITASINAP)
|
|
when TCS.C_BELEPESDATUM is null and TCS.C_KILEPESDATUM is not null then DATEDIFF(WW, TE.C_ELSOTANITASINAP, TCS.C_KILEPESDATUM)
|
|
else DATEDIFF(WW, TCS.C_BELEPESDATUM, TCS.C_KILEPESDATUM)
|
|
end as HetekSzama
|
|
from T_FELHASZNALO_OSSZES F
|
|
inner join T_TANULOCSOPORT_OSSZES TCS on TCS.C_TANULOID = F.ID and TCS.TOROLT = 'F'
|
|
inner join T_TANEV_OSSZES TE on TE.ID = F.C_TANEVID and TE.TOROLT = 'F'
|
|
where F.TOROLT = 'F'
|
|
and TE.ID = @tanevID
|
|
and ((TCS.C_BELEPESDATUM is not null and TCS.C_BELEPESDATUM > TE.C_ELSOTANITASINAP)
|
|
or (TCS.C_KILEPESDATUM is not null and TCS.C_KILEPESDATUM < TE.C_UTOLSOTANITASINAP))
|
|
) HETEK on HETEK.TanuloId = T_FELHASZNALO_OSSZES.ID
|
|
where T_FOGLALKOZAS_OSSZES.TOROLT = 'F'
|
|
and T_FOGLALKOZAS_OSSZES.C_TANEVID = @tanevID
|
|
and T_TANULOCSOPORT_OSSZES.C_OSZTALYCSOPORTID = @osztalyID
|
|
order by T_FOGLALKOZAS_OSSZES.C_NEV, T_TANTARGY_OSSZES.C_NEV
|
|
|
|
END
|
|
DROP TABLE #Osztalyok
|
|
END |