kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20171030151935_KRETA_3639/sp_GetTanulokTantargyMulasztasokReszletezese.sql
2024-03-13 00:33:46 +01:00

122 lines
No EOL
6 KiB
Transact-SQL

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF OBJECT_ID('[dbo].[sp_GetTanulokTantargyMulasztasokReszletezese]') IS NOT NULL
BEGIN
DROP PROCEDURE [dbo].[sp_GetTanulokTantargyMulasztasokReszletezese]
END
GO
CREATE PROCEDURE [dbo].[sp_GetTanulokTantargyMulasztasokReszletezese]
@OsztalyId int,
@TanevId int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Diakok TABLE (DiakId INT)
INSERT INTO @Diakok
SELECT
TanuloId
FROM fnGetDokumentumOsztalyokCsoportokTanuloi(@TanevId, @OsztalyId, 'T')
declare @Mulasztasok table (MulasztasId int) insert into @Mulasztasok select ID from T_MULASZTASTIPUS_OSSZES where ID != 1497 and ID != 1498 and ID !=1817 and C_ALTANEVID = @TanevId
declare @tmp table (OSZTALY nvarchar(255), INT_NEV nvarchar(255), INT_OMKOD int, INT_VAROS nvarchar(255), INT_CIM nvarchar(255), INT_IGAZGATO_NEV nvarchar(255), OSZTFO_NEV nvarchar(255))
insert into @tmp select top(1) ocs.C_NEV, i.C_NEV as INT_NEV,i.C_OMKOD as INT_OMKOD,i.C_VAROS as INT_VAROS,dbo.fnGetDokumentumIntezmenyCime(@tanevId) as INT_CIM,
i.C_IGAZGATONEVE as INT_IGAZGATO_NEV,osztf.C_VEZETEKNEV + ' ' + osztf.C_UTONEV as OSZTFO_NEV
from T_OSZTALYCSOPORT_OSSZES ocs
join T_TANULOCSOPORT_OSSZES tcs on tcs.C_OSZTALYCSOPORTID = ocs.ID and tcs.TOROLT = 'F'
join T_FELHASZNALO_OSSZES f on f.ID = tcs.C_TANULOID and f.TOROLT = 'F'
left outer join T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID = ocs.C_INTEZMENYID and i.C_TANEVID = ocs.C_TANEVID and i.TOROLT = 'F'
left outer join T_OSZTALY_OSSZES o on o.ID = ocs.ID and o.TOROLT = 'F'
left outer join T_FELHASZNALO_OSSZES osztf on osztf.ID = o.C_OSZTALYFONOKID and osztf.TOROLT = 'F'
where
tcs.C_OSZTALYCSOPORTID = @OsztalyId
and ocs.C_TANEVID = @TanevId
and ocs.TOROLT = 'F'
and tcs.TOROLT = 'F'
and tcs.C_BELEPESDATUM < GETDATE()
and (tcs.C_KILEPESDATUM is null or tcs.C_KILEPESDATUM >= GETDATE())
declare @TenylegesMulasztasok table (DiakId int, MulasztasId int, NEV nvarchar(100), OSZTALY nvarchar(100), DATUM datetime, ORA int, MULASZTASJELLEG nvarchar(100), KESESPERC int, OSZTALYCSOPORT nvarchar(100),
TANTARGYID int, TANTARGY nvarchar(100), INT_NEV nvarchar(255), INT_OMKOD nvarchar(100), INT_VAROS nvarchar(100), INT_CIM nvarchar(255), INT_IGAZGATO_NEV nvarchar(100), OSZTFO_NEV nvarchar(100), IGAZOLT nvarchar(1),IG_TIPUS nvarchar(100))
insert into @TenylegesMulasztasok select f.Id,tm.C_TIPUS,f.C_VEZETEKNEV + ' ' + f.C_UTONEV as NEV,ocs.C_NEV as OSZTALY,tno.C_DATUM as DATUM,oo.C_ORASZAM as ORA,tm.C_TIPUS as MULASZTASJELLEG,
tm.C_KESESPERCBEN as KESESPERC,ocs.C_NEV as OSZTALYCSOPORT,tt.ID as TANTARGYID, tt.C_NEV as TANTARGY,i.C_NEV as INT_NEV,i.C_OMKOD as INT_OMKOD,i.C_VAROS as INT_VAROS,dbo.fnGetDokumentumIntezmenyCime(@tanevId) as INT_CIM,
i.C_IGAZGATONEVE as INT_IGAZGATO_NEV,osztf.C_VEZETEKNEV + ' ' + osztf.C_UTONEV as OSZTFO_NEV, tm.C_IGAZOLT as IGAZOLT, tm.C_IGAZOLASTIPUSA as IG_TIPUS
from T_OSZTALYCSOPORT_OSSZES ocs
join T_TANULOCSOPORT_OSSZES tcs on tcs.C_OSZTALYCSOPORTID = ocs.ID and tcs.TOROLT = 'F'
join T_FELHASZNALO_OSSZES f on f.ID = tcs.C_TANULOID and f.TOROLT = 'F'
left join T_TANULOMULASZTAS_OSSZES tm on tm.C_ORATANULOIID = tcs.C_TANULOID and tm.TOROLT = 'F' and tm.C_TIPUS != 1817
left join T_TANITASIORA_OSSZES tno on tno.ID = tm.C_TANITASIORAKID and tno.TOROLT = 'F'
left join T_TANTARGY_OSSZES tt on tt.ID = tno.C_TANTARGYID and tt.TOROLT = 'F'
left join T_ORARENDIORA_OSSZES oo ON tno.C_ORARENDIORAGROUPID = oo.C_ORARENDIORAGROUPID AND tno.C_DATUM BETWEEN oo.C_ORAERVENYESSEGKEZDETE AND oo.C_ORAERVENYESSEGVEGE and oo.TOROLT = 'F'
left outer join T_INTEZMENYADATOK_OSSZES i on i.C_INTEZMENYID = ocs.C_INTEZMENYID and i.C_TANEVID = ocs.C_TANEVID and i.TOROLT = 'F'
left outer join T_OSZTALY_OSSZES o on o.ID = ocs.ID and o.TOROLT = 'F'
left outer join T_FELHASZNALO_OSSZES osztf on osztf.ID = o.C_OSZTALYFONOKID and osztf.TOROLT = 'F'
where
tcs.C_OSZTALYCSOPORTID = @OsztalyId
and ocs.C_TANEVID = @TanevId
and ocs.TOROLT = 'F'
and tcs.TOROLT = 'F'
and tcs.C_BELEPESDATUM < GETDATE()
and (tcs.C_KILEPESDATUM is null or tcs.C_KILEPESDATUM >= GETDATE())
declare @tmp2 table (DiakId int, TantargyId int, Cnt int)
insert into @tmp2
select
N.DiakId
,T.TANTARGYID
,count(*) as Cnt
from @Diakok N
cross join @Mulasztasok O
join @TenylegesMulasztasok T on T.DiakId = N.DiakId and T.MulasztasId = O.MulasztasId
group by N.DiakId,T.TANTARGYID
--select * from @tmp2
select
N.DiakId
,O.MulasztasId
,O.MulasztasId as Mulasztas
,f.C_VEZETEKNEV + ' ' + f.C_UTONEV as NEV
,(select OSZTALY from @tmp) as OSZTALY
,DATUM
,ORA
,T.MulasztasId as MULASZTASJELLEG
,IGAZOLT
,IG_TIPUS
,KESESPERC
,OSZTALYCSOPORT
,T.TANTARGYID
,TANTARGY
,(select INT_NEV from @tmp) as INT_NEV
,(select INT_OMKOD from @tmp) as INT_OMKOD
,(select INT_VAROS from @tmp) as INT_VAROS
,(select INT_CIM from @tmp) as INT_CIM
,(select INT_IGAZGATO_NEV from @tmp) as INT_IGAZGATO_NEV
,(select OSZTFO_NEV from @tmp) as OSZTFO_NEV
,isnull(Cntr.Cnt, 0) as Cntr
,f.C_NYOMTATASINEV + ' ' + cast(N.DiakId as nvarchar) as GROUPPARAMETER
from @Diakok N
cross join @Mulasztasok O
left join @TenylegesMulasztasok T on T.DiakId = N.DiakId and T.MulasztasId = O.MulasztasId
join T_FELHASZNALO_OSSZES f on f.ID = N.DiakId and f.TOROLT = 'F'
left join @tmp2 Cntr on Cntr.DiakId = N.DiakId and Cntr.TantargyId = T.TANTARGYID
where T.TANTARGYID is not null
order by f.C_NYOMTATASINEV
select
DiakId,
TANTARGY,
isnull(count(1),0) as Ossz
from @TenylegesMulasztasok
group by DiakId,TANTARGY
order by DiakId,TANTARGY
select C_OSZTALYFONOKID PartnerID From T_OSZTALY_OSSZES WHERE T_OSZTALY_OSSZES.ID = @OsztalyId AND T_OSZTALY_OSSZES.TOROLT='F' and T_OSZTALY_OSSZES.C_ALTANEVID = @TanevId
END