DROP FUNCTION IF EXISTS dbo.fnGetOsztalyCsoportTanuloinakTanugyiAdatai GO /* 1) Osztály, tudjuk (AMI-nál nem kell pár mező) 2) Csoport, bontott, tudjuk 3) Csoport, nem bontott, fh-n 1 osztály van ,tudjuk 4) Csoport, nem bontott, fh-n több osztály, nem tudjuk 5) Ha nincs Osztálya a kategórián, akkor a tanulóét */ CREATE FUNCTION dbo.fnGetOsztalyCsoportTanuloinakTanugyiAdatai( @pOsztalyCsoportId int ,@pDatum date = NULL) RETURNS @tanugyiAdatok TABLE( ID int ,TanuloId int ,C_BEIRASINAPLOSORSZAM nvarchar(100) ,C_BEJARO char(1) ,C_DIAKSPORTKOROS char(1) ,C_EGYEBORSZAGOSDONTO char(1) ,C_EGYUTTMUKODESES char(1) ,C_ELOZOINTEZMENY nvarchar(510) ,C_EVISMETLO char(1) ,C_ISKOLAIKERETEKKOZOTT char(1) ,C_JOGVISZONYATSZUNETELTETO char(1) ,C_JOGVISZONYVARHATOBEFEJEZESE datetime ,C_MAGANTANULO char(1) ,C_MAGANTANULOSAGANAKOKAID int ,C_MAGANTANULOSAGKEZDETE datetime ,C_MAGANTANULOSAGVEGE datetime ,C_NYILVANTARTASKEZDETE datetime ,C_OSZTV char(1) ,C_POLGARISZERZODESES char(1) ,C_SZAKMAIGYAKORLATON char(1) ,C_SZETVAGAZAT char(1) ,C_SZINTVIZSGA numeric ,C_SZKTV char(1) ,C_TANDIJATFIZETO char(1) ,C_TANKOTELEZETT char(1) ,C_TANKOTELEZETTSEGVEGE datetime ,C_TANULOEVFOLYAMTIPUSID int ,C_TANULOSZERZODESES char(1) ,C_TECHNIKUSIEVFOLYAM char(1) ,C_TERITESIDIJATFIZETO char(1) ,C_VENDEG char(1) ,C_NAPLOSORSZAM int ,C_TORZSLAPSZAM nvarchar(1000) ,C_TANTERVID int ,C_FELVETELTANEVEID int ,C_TANULOCSOPORTID int ,C_HOZOTTIGAZOLATLANHIANYZAS int ,C_HOZOTTIGAZOLATLANKESESPERCBE int ,C_HOZOTTIGAZOLTHIANYZAS int ,C_HOZOTTIGAZOLTKESESPERCBEN int ,C_ISESL16EVESUTANBELEPETT char(1) ,C_AGAZATID int ,C_SZAKMACSOPORTID int ,C_RESZSZAKKEPESITESID int ,C_SZAKKEPESITESID int ,C_AGAZATUJSZKTTIPUSID int ,C_SZAKMATIPUSID int ,C_SZAKMAIRANYTIPUSID int ,C_TANULMANYITERULETNKTTIPUSID int ,C_SZAKKEPESITESNKTTIPUSID int ,C_SZAKIRANYNKTTIPUSID int ,C_TANTERVIJELLEGID int ,C_AGAZATIALAPVIZSGAEREDMENYE numeric(10, 2) ,C_AGAZATIALAPVIZSGAEREDMENYESZ int ,C_ISSZAKKEPZESIMUNKASZERZODESS char(1) ,C_DUALISKEPZOHELYNEVE nvarchar(255) ,C_DUALISKEPZOHELYADOSZAMA char(20) ) AS BEGIN IF @pDatum IS NULL SET @pDatum = GETDATE() DECLARE @TanugyiAdat TABLE (ID int,TanuloId int, Darab int) DECLARE @kategoriaId int = (SELECT C_FELADATKATEGORIAID FROM T_OSZTALYCSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId) DECLARE @bontasId int = (SELECT C_OSZTALYBONTASID FROM T_CSOPORT_OSSZES WHERE ID = @pOsztalyCsoportId) DECLARE @isAmi bit = (SELECT IIF(@kategoriaId = 7555,1,0)) DECLARE @isOsztaly bit = 0 IF EXISTS(SELECT 1 FROM T_OSZTALY_OSSZES WHERE ID = @pOsztalyCsoportId) SET @isOsztaly=1 IF @isOsztaly = 1 BEGIN INSERT INTO @TanugyiAdat (ID,TanuloId,Darab) SELECT tta.ID,tcs.C_TANULOID,1 FROM T_TANULOTANUGYIADATOK_OSSZES tta INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID=tta.C_TANULOCSOPORTID AND tcs.C_OSZTALYCSOPORTID=@posztalyCsoportId AND tcs.C_BELEPESDATUM <= @pDatum AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM>@pDatum) AND tcs.TOROLT='F' WHERE tta.TOROLT='F' END ELSE IF @bontasId IS NOT NULL BEGIN INSERT INTO @TanugyiAdat (ID,TanuloId,Darab) SELECT tta.ID,tcs.C_TANULOID,1 FROM T_TANULOTANUGYIADATOK_OSSZES tta INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID=tta.C_TANULOCSOPORTID AND tcs.C_OSZTALYCSOPORTID=@bontasId AND tcs.C_BELEPESDATUM <= @pDatum AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM>@pDatum) AND tcs.TOROLT='F' END ELSE BEGIN INSERT INTO @TanugyiAdat (ID,TanuloId,Darab) SELECT tta.ID, tcso.C_TANULOID, ROW_NUMBER() OVER(PARTITION BY tcso.C_TANULOID ORDER BY tta.ID) FROM T_TANULOTANUGYIADATOK_OSSZES tta INNER JOIN T_TANULOCSOPORT_OSSZES tcs ON tcs.ID=tta.C_TANULOCSOPORTID AND tcs.C_BELEPESDATUM <= @pDatum AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM>@pDatum) AND tcs.TOROLT='F' 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' AND (@kategoriaId IS NULL OR ocs.C_FELADATKATEGORIAID=@kategoriaId) INNER JOIN T_TANULOCSOPORT_OSSZES tcso ON tcso.C_TANULOID=tcs.C_TANULOID AND tcso.C_BELEPESDATUM <= @pDatum AND (tcso.C_KILEPESDATUM IS NULL OR tcso.C_KILEPESDATUM>@pDatum) AND tcso.TOROLT='F' AND tcso.C_OSZTALYCSOPORTID=@pOsztalyCsoportId END UPDATE ta SET Darab = x.DARAB FROM( SELECT MAX(DARAB) DARAB ,TanuloId FROM @TanugyiAdat GROUP BY TanuloId) x INNER JOIN @TanugyiAdat ta ON ta.TanuloId=x.TanuloId INSERT INTO @tanugyiAdatok ( ID ,TanuloId ,C_BEIRASINAPLOSORSZAM ,C_BEJARO ,C_DIAKSPORTKOROS ,C_EGYEBORSZAGOSDONTO ,C_EGYUTTMUKODESES ,C_ELOZOINTEZMENY ,C_EVISMETLO ,C_ISKOLAIKERETEKKOZOTT ,C_JOGVISZONYATSZUNETELTETO ,C_JOGVISZONYVARHATOBEFEJEZESE ,C_MAGANTANULO ,C_MAGANTANULOSAGANAKOKAID ,C_MAGANTANULOSAGKEZDETE ,C_MAGANTANULOSAGVEGE ,C_NYILVANTARTASKEZDETE ,C_OSZTV ,C_POLGARISZERZODESES ,C_SZAKMAIGYAKORLATON ,C_SZETVAGAZAT ,C_SZINTVIZSGA ,C_SZKTV ,C_TANDIJATFIZETO ,C_TANKOTELEZETT ,C_TANKOTELEZETTSEGVEGE ,C_TANULOEVFOLYAMTIPUSID ,C_TANULOSZERZODESES ,C_TECHNIKUSIEVFOLYAM ,C_TERITESIDIJATFIZETO ,C_VENDEG ,C_NAPLOSORSZAM ,C_TORZSLAPSZAM ,C_TANTERVID ,C_FELVETELTANEVEID ,C_TANULOCSOPORTID ,C_HOZOTTIGAZOLATLANHIANYZAS ,C_HOZOTTIGAZOLATLANKESESPERCBE ,C_HOZOTTIGAZOLTHIANYZAS ,C_HOZOTTIGAZOLTKESESPERCBEN ,C_ISESL16EVESUTANBELEPETT ,C_AGAZATID ,C_SZAKMACSOPORTID ,C_RESZSZAKKEPESITESID ,C_SZAKKEPESITESID ,C_AGAZATUJSZKTTIPUSID ,C_SZAKMATIPUSID ,C_SZAKMAIRANYTIPUSID ,C_TANULMANYITERULETNKTTIPUSID ,C_SZAKKEPESITESNKTTIPUSID ,C_SZAKIRANYNKTTIPUSID ,C_TANTERVIJELLEGID ,C_AGAZATIALAPVIZSGAEREDMENYE ,C_AGAZATIALAPVIZSGAEREDMENYESZ ,C_ISSZAKKEPZESIMUNKASZERZODESS ,C_DUALISKEPZOHELYNEVE ,C_DUALISKEPZOHELYADOSZAMA ) SELECT DISTINCT 0 --ID ,TanuloId --TanuloId ,NULL --C_BEIRASINAPLOSORSZAM ,'F' --C_BEJARO ,'F' --C_DIAKSPORTKOROS ,'F' --C_EGYEBORSZAGOSDONTO ,'F' --C_EGYUTTMUKODESES ,NULL --C_ELOZOINTEZMENY ,'F' --C_EVISMETLO ,'F' --C_ISKOLAIKERETEKKOZOTT ,'F' --C_JOGVISZONYATSZUNETELTETO ,NULL --C_JOGVISZONYVARHATOBEFEJEZESE ,'F' --C_MAGANTANULO ,NULL --C_MAGANTANULOSAGANAKOKAID ,NULL --C_MAGANTANULOSAGKEZDETE ,NULL --C_MAGANTANULOSAGVEGE ,'19000101' --C_NYILVANTARTASKEZDETE ,'F' --C_OSZTV ,'F' --C_POLGARISZERZODESES ,'F' --C_SZAKMAIGYAKORLATON ,'F' --C_SZETVAGAZAT ,NULL --C_SZINTVIZSGA ,'F' --C_SZKTV ,'F' --C_TANDIJATFIZETO ,'F' --C_TANKOTELEZETT ,NULL --C_TANKOTELEZETTSEGVEGE ,NULL --C_TANULOEVFOLYAMTIPUSID ,'F' --C_TANULOSZERZODESES ,'F' --C_TECHNIKUSIEVFOLYAM ,'F' --C_TERITESIDIJATFIZETO ,'F' --C_VENDEG ,NULL --C_NAPLOSORSZAM ,NULL --C_TORZSLAPSZAM ,0 --C_TANTERVID ,0 --C_FELVETELTANEVEID ,0 --C_TANULOCSOPORTID ,0 --C_HOZOTTIGAZOLATLANHIANYZAS ,0 --C_HOZOTTIGAZOLATLANKESESPERCBE ,0 --C_HOZOTTIGAZOLTHIANYZAS ,0 --C_HOZOTTIGAZOLTKESESPERCBEN ,'F' --C_ISESL16EVESUTANBELEPETT ,0 --C_AGAZATID ,0 --C_SZAKMACSOPORTID ,0 --C_RESZSZAKKEPESITESID ,0 --C_SZAKKEPESITESID ,0 --C_AGAZATUJSZKTTIPUSID ,0 --C_SZAKMATIPUSID ,0 --C_SZAKMAIRANYTIPUSID ,0 --C_TANULMANYITERULETNKTTIPUSID ,0 --C_SZAKKEPESITESNKTTIPUSID ,0 --C_SZAKIRANYNKTTIPUSID ,0 --C_TANTERVIJELLEGID ,NULL --C_AGAZATIALAPVIZSGAEREDMENYE ,NULL --C_AGAZATIALAPVIZSGAEREDMENYESZ ,'F' --C_ISSZAKKEPZESIMUNKASZERZODESS ,NULL --C_DUALISKEPZOHELYNEVE ,NULL --C_DUALISKEPZOHELYADOSZAMA FROM @TanugyiAdat WHERE Darab>1 INSERT INTO @tanugyiAdatok ( ID ,TanuloId ,C_BEIRASINAPLOSORSZAM ,C_BEJARO ,C_DIAKSPORTKOROS ,C_EGYEBORSZAGOSDONTO ,C_EGYUTTMUKODESES ,C_ELOZOINTEZMENY ,C_EVISMETLO ,C_ISKOLAIKERETEKKOZOTT ,C_JOGVISZONYATSZUNETELTETO ,C_JOGVISZONYVARHATOBEFEJEZESE ,C_MAGANTANULO ,C_MAGANTANULOSAGANAKOKAID ,C_MAGANTANULOSAGKEZDETE ,C_MAGANTANULOSAGVEGE ,C_NYILVANTARTASKEZDETE ,C_OSZTV ,C_POLGARISZERZODESES ,C_SZAKMAIGYAKORLATON ,C_SZETVAGAZAT ,C_SZINTVIZSGA ,C_SZKTV ,C_TANDIJATFIZETO ,C_TANKOTELEZETT ,C_TANKOTELEZETTSEGVEGE ,C_TANULOEVFOLYAMTIPUSID ,C_TANULOSZERZODESES ,C_TECHNIKUSIEVFOLYAM ,C_TERITESIDIJATFIZETO ,C_VENDEG ,C_NAPLOSORSZAM ,C_TORZSLAPSZAM ,C_TANTERVID ,C_FELVETELTANEVEID ,C_TANULOCSOPORTID ,C_HOZOTTIGAZOLATLANHIANYZAS ,C_HOZOTTIGAZOLATLANKESESPERCBE ,C_HOZOTTIGAZOLTHIANYZAS ,C_HOZOTTIGAZOLTKESESPERCBEN ,C_ISESL16EVESUTANBELEPETT ,C_AGAZATID ,C_SZAKMACSOPORTID ,C_RESZSZAKKEPESITESID ,C_SZAKKEPESITESID ,C_AGAZATUJSZKTTIPUSID ,C_SZAKMATIPUSID ,C_SZAKMAIRANYTIPUSID ,C_TANULMANYITERULETNKTTIPUSID ,C_SZAKKEPESITESNKTTIPUSID ,C_SZAKIRANYNKTTIPUSID ,C_TANTERVIJELLEGID ,C_AGAZATIALAPVIZSGAEREDMENYE ,C_AGAZATIALAPVIZSGAEREDMENYESZ ,C_ISSZAKKEPZESIMUNKASZERZODESS ,C_DUALISKEPZOHELYNEVE ,C_DUALISKEPZOHELYADOSZAMA ) SELECT tta.ID ,t.ID ,IIF(tta.ID IS NOT NULL,tta.C_BEIRASINAPLOSORSZAM, t.C_BEIRASINAPLOSORSZAM) ,IIF(tta.ID IS NOT NULL,tta.C_BEJARO, t.C_BEJARO) ,IIF(tta.ID IS NOT NULL,tta.C_DIAKSPORTKOROS, t.C_DIAKSPORTKOROS) ,IIF(tta.ID IS NOT NULL,tta.C_EGYEBORSZAGOSDONTO, t.C_EGYEBDONTO) ,IIF(tta.ID IS NOT NULL,tta.C_EGYUTTMUKODESES, t.C_EGYUTTMUKODESES) ,IIF(tta.ID IS NOT NULL,tta.C_ELOZOINTEZMENY, t.C_ELOZOINTEZMENY) ,IIF(tta.ID IS NOT NULL,tta.C_EVISMETLO, t.C_EVISMETLO) ,IIF(tta.ID IS NOT NULL,tta.C_ISKOLAIKERETEKKOZOTT, t.C_ISKOLAIKERETEKKOZOTT) ,IIF(tta.ID IS NOT NULL,tta.C_JOGVISZONYATSZUNETELTETO, t.C_JOGVISZONYATSZUNETELTETO) ,IIF(tta.ID IS NOT NULL,tta.C_JOGVISZONYVARHATOBEFEJEZESE, t.C_JOGVISZONYVARHATOBEFEJEZESE) ,CASE WHEN @isAmi = 1 THEN 'F' ELSE IIF(tta.ID IS NOT NULL,tta.C_MAGANTANULO, t.C_MAGANTANULO) END ,CASE WHEN @isAmi = 1 THEN NULL ELSE IIF(tta.ID IS NOT NULL,tta.C_MAGANTANULOSAGANAKOKAID, t.C_MAGANTANULOSAGANAKOKA) END ,CASE WHEN @isAmi = 1 THEN NULL ELSE IIF(tta.ID IS NOT NULL,tta.C_MAGANTANULOSAGKEZDETE, t.C_MAGANTANULOSAGKEZDETE) END ,CASE WHEN @isAmi = 1 THEN NULL ELSE IIF(tta.ID IS NOT NULL,tta.C_MAGANTANULOSAGVEGE, t.C_MAGANTANULOSAGVEGE) END ,tta.C_NYILVANTARTASKEZDETE ,IIF(tta.ID IS NOT NULL,tta.C_OSZTV, t.C_OSZTV) ,IIF(tta.ID IS NOT NULL,tta.C_POLGARISZERZODESES, t.C_POLGARISZERZODESES) ,IIF(tta.ID IS NOT NULL,tta.C_SZAKMAIGYAKORLATON, t.C_SZAKMAIGYAKORLATON) ,IIF(tta.ID IS NOT NULL,tta.C_SZETVAGAZAT, t.C_SZETVAGAZAT) ,IIF(tta.ID IS NOT NULL,tta.C_SZINTVIZSGA, t.C_SZINTVIZSGA) ,IIF(tta.ID IS NOT NULL,tta.C_SZKTV, t.C_SZKTV) ,IIF(tta.ID IS NOT NULL,tta.C_TANDIJATFIZETO, t.C_TANDIJATFIZETO) ,CASE WHEN @isAmi = 1 THEN 'F' ELSE IIF(tta.ID IS NOT NULL,tta.C_TANKOTELEZETT, t.C_TANKOTELEZETT) END ,IIF(tta.ID IS NOT NULL,tta.C_TANKOTELEZETTSEGVEGE, t.C_TANKOTELEZETTSEGVEGE) ,tta.C_TANULOEVFOLYAMTIPUSID ,IIF(tta.ID IS NOT NULL,tta.C_TANULOSZERZODESES, t.C_TANULOSZERZODESES) ,IIF(tta.ID IS NOT NULL,tta.C_TECHNIKUSIEVFOLYAM, t.C_TECHNIKUSIEVFOLYAM) ,IIF(tta.ID IS NOT NULL,tta.C_TERITESIDIJATFIZETO, t.C_TERITESIDIJATFIZETO) ,IIF(tta.ID IS NOT NULL,tta.C_VENDEG, t.C_VENDEG) ,IIF(tta.ID IS NOT NULL,tta.C_NAPLOSORSZAM, t.C_NAPLOSORSZAM) ,IIF(tta.ID IS NOT NULL,tta.C_TORZSLAPSZAM, t.C_TORZSLAPSZAM) ,tta.C_TANTERVID ,IIF(tta.ID IS NOT NULL,tta.C_FELVETELTANEVEID, t.C_FELVETELTANEVEID) ,tta.C_TANULOCSOPORTID ,tta.C_HOZOTTIGAZOLATLANHIANYZAS ,tta.C_HOZOTTIGAZOLATLANKESESPERCBE ,tta.C_HOZOTTIGAZOLTHIANYZAS ,tta.C_HOZOTTIGAZOLTKESESPERCBEN ,tta.C_ISESL16EVESUTANBELEPETT ,tta.C_AGAZATID ,tta.C_SZAKMACSOPORTID ,tta.C_RESZSZAKKEPESITESID ,tta.C_SZAKKEPESITESID ,tta.C_AGAZATUJSZKTTIPUSID ,tta.C_SZAKMATIPUSID ,tta.C_SZAKMAIRANYTIPUSID ,tta.C_TANULMANYITERULETNKTTIPUSID ,tta.C_SZAKKEPESITESNKTTIPUSID ,tta.C_SZAKIRANYNKTTIPUSID ,tta.C_TANTERVIJELLEGID ,IIF(tta.ID IS NOT NULL, tta.C_AGAZATIALAPVIZSGAEREDMENYE, t.C_AGAZATIALAPVIZSGAEREDMENYE) ,IIF(tta.ID IS NOT NULL, tta.C_AGAZATIALAPVIZSGAEREDMENYESZ, t.C_AGAZATIALAPVIZSGAEREDMENYESZ) ,IIF(tta.ID IS NOT NULL, tta.C_ISSZAKKEPZESIMUNKASZERZODESS, t.C_ISSZAKKEPZESIMUNKASZERZODESS) ,IIF(tta.ID IS NOT NULL, tta.C_DUALISKEPZOHELYNEVE, t.C_DUALISKEPZOHELYNEVE) ,IIF(tta.ID IS NOT NULL, tta.C_DUALISKEPZOHELYADOSZAMA, t.C_DUALISKEPZOHELYADOSZAMA) FROM T_TANULOCSOPORT_OSSZES tcs LEFT JOIN @TanugyiAdat ta ON ta.TanuloId=tcs.C_TANULOID LEFT JOIN T_TANULOTANUGYIADATOK_OSSZES tta ON tta.ID=ta.ID AND tta.TOROLT='F' LEFT JOIN T_TANULO_OSSZES t ON t.ID=tcs.C_TANULOID AND t.TOROLT='F' WHERE tcs.C_OSZTALYCSOPORTID = @pOsztalyCsoportId AND tcs.TOROLT='F' AND tcs.C_BELEPESDATUM<=@pDatum AND (tcs.C_KILEPESDATUM IS NULL OR tcs.C_KILEPESDATUM>@pDatum) AND ISNULL(ta.Darab,0)<2 RETURN END GO