239 lines
9.7 KiB
Transact-SQL
239 lines
9.7 KiB
Transact-SQL
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
|