GO /****** Object: StoredProcedure [dbo].[sp_GetIntezmenyFeltoltottsegeRiport] Script Date: 2016.10.07. 8:37:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF OBJECT_ID('[sp_GetIntezmenyFeltoltottsegeRiport]') IS NOT NULL BEGIN DROP PROCEDURE [sp_GetIntezmenyFeltoltottsegeRiport] END GO -- ============================================= -- Author: Kelemen Attila -- Create date: 2016. 08. 10. -- Description: Adatok az intézmény feltöltöttsége riporthoz -- ============================================= CREATE PROCEDURE [sp_GetIntezmenyFeltoltottsegeRiport] @fenntartoId int, @intezmenyId int, @tanevNev nvarchar(20), @utazoGyogypedagogusCsoportjaCsoportTipusa int AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; DECLARE @intezmenyTable table ( id int primary key, tanevId int ) IF @fenntartoId IS NOT NULL AND @intezmenyId IS NOT NULL BEGIN INSERT INTO @intezmenyTable (id) SELECT i.ID FROM T_INTEZMENY i WHERE i.C_FENNTARTOAZONOSITO = @fenntartoId AND i.ID = @intezmenyId AND i.TOROLT = 'F' END IF @fenntartoId IS NOT NULL AND @intezmenyId IS NULL BEGIN INSERT INTO @intezmenyTable (id) SELECT i.ID FROM T_INTEZMENY i WHERE i.C_FENNTARTOAZONOSITO = @fenntartoId AND i.TOROLT = 'F' END IF @fenntartoId IS NULL AND @intezmenyId IS NOT NULL BEGIN INSERT INTO @intezmenyTable (id) SELECT i.ID FROM T_INTEZMENY i WHERE i.ID = @intezmenyId AND i.TOROLT = 'F' END IF @fenntartoId IS NULL AND @intezmenyId IS NULL BEGIN INSERT INTO @intezmenyTable (id) SELECT i.ID FROM T_INTEZMENY i WHERE i.TOROLT = 'F' END IF NOT EXISTS (SELECT 1 FROM @intezmenyTable) BEGIN RETURN END UPDATE i SET i.tanevId = t.ID FROM @intezmenyTable i INNER JOIN T_TANEV t ON t.C_INTEZMENYID = i.id WHERE t.C_NEV = @tanevNev AND t.TOROLT = 'F' select Ossz, NincsNem, IIF(Ossz = 0, 0, cast(NincsNem as float)/cast(Ossz as float) * 100) NincsNemSzazalek, NincsMunkakor, IIF(Ossz = 0, 0, cast(NincsMunkakor as float)/cast(Ossz as float) * 100) NincsMunkakorSzazalek, NincsFoglalkoztatasTipus, IIF(Ossz = 0, 0, cast(NincsFoglalkoztatasTipus as float)/cast(Ossz as float) * 100) NincsFoglalkoztatasTipusSzazalek, NincsKotelezoOraszam, IIF(Ossz = 0, 0, cast(NincsKotelezoOraszam as float)/cast(Ossz as float) * 100) NincsKotelezoOraszamSzazalek, NincsKepesites, IIF(Ossz = 0, 0, cast(NincsKepesites as float)/cast(Ossz as float) * 100) NincsKepesitesSzazalek From ( select count(1) Ossz, (select count(1) from T_ALKALMAZOTT inner join T_FELHASZNALO on T_ALKALMAZOTT.ID = T_FELHASZNALO.ID INNER JOIN @intezmenyTable i ON T_FELHASZNALO.C_INTEZMENYID = i.id AND T_FELHASZNALO.C_TANEVID = i.tanevId where (T_FELHASZNALO.C_NEME is null OR T_FELHASZNALO.C_NEME = 1565) AND T_ALKALMAZOTT.TOROLT ='F' AND T_FELHASZNALO.TOROLT ='F' AND T_MUNKAUGYIADATOK.C_BETOLTETLENALLASHELY = 'F' ) NincsNem, (select count(1) from T_ALKALMAZOTT inner join T_MUNKAUGYIADATOK on T_ALKALMAZOTT.ID = T_MUNKAUGYIADATOK.C_ALKALMAZOTTID INNER JOIN @intezmenyTable i ON T_MUNKAUGYIADATOK.C_INTEZMENYID = i.id AND T_MUNKAUGYIADATOK.C_TANEVID = i.tanevId where (T_MUNKAUGYIADATOK.C_MUNKAKORTIPUSA is null OR T_MUNKAUGYIADATOK.C_MUNKAKORTIPUSA = 548) AND T_ALKALMAZOTT.TOROLT ='F' AND T_MUNKAUGYIADATOK.TOROLT='F' AND T_MUNKAUGYIADATOK.C_BETOLTETLENALLASHELY = 'F' ) NincsMunkakor, (select count(1) from T_ALKALMAZOTT inner join T_MUNKAUGYIADATOK on T_ALKALMAZOTT.ID = T_MUNKAUGYIADATOK.C_ALKALMAZOTTID INNER JOIN @intezmenyTable i ON T_MUNKAUGYIADATOK.C_INTEZMENYID = i.id AND T_MUNKAUGYIADATOK.C_TANEVID = i.tanevId where (T_MUNKAUGYIADATOK.C_MUNKAVISZONYTIPUSA is null OR T_MUNKAUGYIADATOK.C_MUNKAVISZONYTIPUSA = 643) AND T_ALKALMAZOTT.TOROLT ='F' AND T_MUNKAUGYIADATOK.TOROLT='F' AND T_MUNKAUGYIADATOK.C_BETOLTETLENALLASHELY = 'F' ) NincsFoglalkoztatasTipus, (select count(1) from T_ALKALMAZOTT inner join T_MUNKAUGYIADATOK on T_ALKALMAZOTT.ID = T_MUNKAUGYIADATOK.C_ALKALMAZOTTID INNER JOIN @intezmenyTable i ON T_MUNKAUGYIADATOK.C_INTEZMENYID = i.id AND T_MUNKAUGYIADATOK.C_TANEVID = i.tanevId where (T_MUNKAUGYIADATOK.C_KOTELEZOORASZAM is null OR T_MUNKAUGYIADATOK.C_KOTELEZOORASZAM <= 0) AND T_ALKALMAZOTT.TOROLT ='F' AND T_MUNKAUGYIADATOK.TOROLT='F' AND T_MUNKAUGYIADATOK.C_BETOLTETLENALLASHELY = 'F' ) NincsKotelezoOraszam, (select count(1) from T_ALKALMAZOTT inner join T_MUNKAUGYIADATOK on T_ALKALMAZOTT.ID = T_MUNKAUGYIADATOK.C_ALKALMAZOTTID INNER JOIN @intezmenyTable i ON T_MUNKAUGYIADATOK.C_INTEZMENYID = i.id AND T_MUNKAUGYIADATOK.C_TANEVID = i.tanevId where T_MUNKAUGYIADATOK.C_BESOROLASIFOKOZAT is null AND T_ALKALMAZOTT.TOROLT ='F' AND (T_MUNKAUGYIADATOK.TOROLT='F' OR --Tanár és Képesítés NA (T_MUNKAUGYIADATOK.C_PEDAGOGUSSTATUSZA <> 3036 AND T_MUNKAUGYIADATOK.C_BESOROLASIFOKOZAT = 3040) OR --Nem tanár és képesítés nem NA (T_MUNKAUGYIADATOK.C_PEDAGOGUSSTATUSZA = 3036 AND T_MUNKAUGYIADATOK.C_BESOROLASIFOKOZAT <> 3040)) AND T_MUNKAUGYIADATOK.C_BETOLTETLENALLASHELY = 'F' ) NincsKepesites from T_ALKALMAZOTT INNER JOIN @intezmenyTable i ON T_ALKALMAZOTT.C_ALINTEZMENYID = i.id AND T_ALKALMAZOTT.C_ALTANEVID = i.tanevId inner join T_MUNKAUGYIADATOK on T_ALKALMAZOTT.ID = T_MUNKAUGYIADATOK.C_ALKALMAZOTTID WHERE T_ALKALMAZOTT.TOROLT='F' and T_MUNKAUGYIADATOK.C_BETOLTETLENALLASHELY = 'F' group by T_MUNKAUGYIADATOK.C_BETOLTETLENALLASHELY ) Alk select Ossz, NincsEvfolyam, IIF(Ossz = 0, 0, cast(NincsEvfolyam as float)/cast(Ossz as float) * 100) NincsEvfolyamSzazalek, NincsTervezettLetszam, IIF(Ossz = 0, 0, cast(NincsTervezettLetszam as float)/cast(Ossz as float) * 100) NincsTervezettLetszamSzazalek From ( select count(1) Ossz, (select count(1) from T_OSZTALY inner join T_OSZTALYCSOPORT on T_OSZTALY.ID = T_OSZTALYCSOPORT.ID INNER JOIN @intezmenyTable i ON T_OSZTALYCSOPORT.C_INTEZMENYID = i.id AND T_OSZTALYCSOPORT.C_TANEVID = i.tanevId where (T_OSZTALYCSOPORT.C_EVFOLYAMTIPUSA is null OR T_OSZTALYCSOPORT.C_EVFOLYAMTIPUSA = 1296) AND T_OSZTALY.TOROLT='F' AND T_OSZTALYCSOPORT.TOROLT='F' ) NincsEvfolyam, (select count(1) from ( select t_osztaly.id from t_osztaly inner join t_osztalycsoport on t_osztaly.id = t_osztalycsoport.id INNER JOIN @intezmenyTable i ON T_OSZTALYCSOPORT.C_INTEZMENYID = i.id AND T_OSZTALYCSOPORT.C_TANEVID = i.tanevId left join T_TANULOCSOPORT on t_osztaly.id = T_TANULOCSOPORT.C_OSZTALYCSOPORTID and T_TANULOCSOPORT.TOROLT ='F' and t_tanulocsoport.C_BELEPESDATUM <= GETDATE() AND (T_TANULOCSOPORT.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT.C_KILEPESDATUM > GETDATE()) where t_tanulocsoport.id is null and t_osztaly.torolt ='F' and t_osztalycsoport.TOROLT='F' group by t_osztaly.ID ) Osztaly ) NincsTervezettLetszam from T_OSZTALY inner join T_OSZTALYCSOPORT on T_OSZTALY.ID = T_OSZTALYCSOPORT.ID INNER JOIN @intezmenyTable i ON T_OSZTALYCSOPORT.C_INTEZMENYID = i.id AND T_OSZTALYCSOPORT.C_TANEVID = i.tanevId AND T_OSZTALY.TOROLT='F' ) Oszt select Ossz, NincsCsoportTipus, IIF(Ossz = 0, 0, cast(NincsCsoportTipus as float)/cast(Ossz as float) * 100) NincsCsoportTipusSzazalek, NincsEvfolyam, IIF(Ossz = 0, 0, cast(NincsEvfolyam as float)/cast(Ossz as float) * 100) NincsEvfolyamSzazalek, NincsTervezettLetszam, IIF(Ossz = 0, 0, cast(NincsTervezettLetszam as float)/cast(Ossz as float) * 100) NincsTervezettLetszamSzazalek From ( select count(1) Ossz, (select count(1) from T_CSOPORT inner join T_OSZTALYCSOPORT on T_CSOPORT.ID = T_OSZTALYCSOPORT.ID INNER JOIN @intezmenyTable i ON T_OSZTALYCSOPORT.C_INTEZMENYID = i.id AND T_OSZTALYCSOPORT.C_TANEVID = i.tanevId where (T_CSOPORT.C_TIPUSA is null OR T_CSOPORT.C_TIPUSA = 1031) AND T_CSOPORT.TOROLT='F' AND T_OSZTALYCSOPORT.TOROLT='F') NincsCsoportTipus, (select count(1) from T_CSOPORT inner join T_OSZTALYCSOPORT on T_CSOPORT.ID = T_OSZTALYCSOPORT.ID INNER JOIN @intezmenyTable i ON T_OSZTALYCSOPORT.C_INTEZMENYID = i.id AND T_OSZTALYCSOPORT.C_TANEVID = i.tanevId where (T_OSZTALYCSOPORT.C_EVFOLYAMTIPUSA is null OR T_OSZTALYCSOPORT.C_EVFOLYAMTIPUSA = 1296) AND T_CSOPORT.TOROLT='F' AND T_OSZTALYCSOPORT.TOROLT='F') NincsEvfolyam, (select count(1) from ( select t_csoport.id from t_csoport inner join t_osztalycsoport on t_csoport.id = t_osztalycsoport.id INNER JOIN @intezmenyTable i ON T_OSZTALYCSOPORT.C_INTEZMENYID = i.id AND T_OSZTALYCSOPORT.C_TANEVID = i.tanevId left join T_TANULOCSOPORT on t_csoport.id = T_TANULOCSOPORT.C_OSZTALYCSOPORTID and T_TANULOCSOPORT.TOROLT ='F' and t_tanulocsoport.C_BELEPESDATUM <= GETDATE() AND (T_TANULOCSOPORT.C_KILEPESDATUM IS NULL OR T_TANULOCSOPORT.C_KILEPESDATUM > GETDATE()) where t_tanulocsoport.id is null and t_csoport.torolt ='F' and t_osztalycsoport.TOROLT='F' AND T_CSOPORT.C_TIPUSA != @utazoGyogypedagogusCsoportjaCsoportTipusa group by t_csoport.ID ) Csoport ) NincsTervezettLetszam from T_CSOPORT inner join T_OSZTALYCSOPORT on T_CSOPORT.ID = T_OSZTALYCSOPORT.ID INNER JOIN @intezmenyTable i ON T_OSZTALYCSOPORT.C_INTEZMENYID = i.id AND T_OSZTALYCSOPORT.C_TANEVID = i.tanevId AND T_CSOPORT.TOROLT='F' ) Csop select Ossz, NincsTargyKategoria, IIF(Ossz = 0, 0, cast(NincsTargyKategoria as float)/cast(Ossz as float) * 100) NincsTargyKategoriaSzazalek From ( select count(1) Ossz, (select count(1) from T_TANTARGY INNER JOIN @intezmenyTable i ON T_TANTARGY.C_INTEZMENYID = i.id AND T_TANTARGY.C_TANEVID = i.tanevId where (T_TANTARGY.C_TARGYKATEGORIA is null OR T_TANTARGY.C_TARGYKATEGORIA = 1197) AND T_TANTARGY.TOROLT='F') NincsTargyKategoria from T_TANTARGY INNER JOIN @intezmenyTable i ON T_TANTARGY.C_INTEZMENYID = i.id AND T_TANTARGY.C_TANEVID = i.tanevId WHERE T_TANTARGY.TOROLT='F' ) Targy END