Files
kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170523165038_KRETA_1327/sp_GetIntezmenyFeltoltottsegeRiport.sql
2024-03-13 00:33:46 +01:00

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