IF OBJECT_ID('dbo.sp_GetNaploEllenorzes') IS NOT NULL BEGIN DROP PROCEDURE dbo.sp_GetNaploEllenorzes END GO IF OBJECT_ID('[DBO].[sp_GetNaploEllenorzes]') IS NOT NULL BEGIN DROP PROCEDURE [DBO].[sp_GetNaploEllenorzes] END GO -- ============================================= -- Author: Kelemen Attila -- Create date: 2016.03.21. -- Description: Naplóellenőrzés összegzése -- ============================================= CREATE PROCEDURE [dbo].[sp_GetNaploEllenorzes] @osztalyId int AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; select '' Osszegzes, Eszrevetelek.EV, Eszrevetelek.HetSzama ID, count(1) NemNaplozottOrakSzama, (case when T_NAPLOELLENORZES.ID IS NULL then 'F' else 'T' end) Ellenorizve, T_NAPLOELLENORZES.ID EllenorzesID, Ellenorzo.C_NYOMTATASINEV EllenorzoSzemely, T_NAPLOELLENORZES.C_ELLENORZESDATUMA EllenorzesDatum, T_NAPLOELLENORZES.C_ESZREVETEL Eszrevetel, Eszrevetelek.OsztalyID from ( select KapcsolodoCsoportok.OsztalyID osztalyID, KapcsolodoCsoportok.OsztalyNev OsztalyNev, naptar.C_HETSORSZAMA HetSzama, YEAR(naptar.c_napdatuma) EV from T_ORARENDIORA inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_ORARENDIORA.C_FOGLALKOZASID left join T_TANTARGY on T_TANTARGY.ID= T_FOGLALKOZAS.C_TANTARGYID inner join T_NAPTARINAP naptar on (( CONVERT(date,naptar.C_NAPDATUMA) BETWEEN CONVERT(date,T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE) AND CONVERT(date,T_ORARENDIORA.C_ORAERVENYESSEGVEGE)) AND (naptar.C_HETIREND = T_ORARENDIORA.C_HETIREND OR T_ORARENDIORA.C_HETIREND = 1554 AND naptar.C_HETNAPJA = T_ORARENDIORA.C_HETNAPJA) ) LEFT JOIN T_TANITASIORA ON (T_TANITASIORA.C_ORARENDIORAGROUPID = T_ORARENDIORA.C_ORARENDIORAGROUPID AND T_TANITASIORA.C_DATUM BETWEEN T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA.C_ORAERVENYESSEGVEGE AND T_TANITASIORA.TOROLT='F' AND naptar.C_NAPDATUMA = T_TANITASIORA.C_DATUM) left join (select T_OSZTALYCSOPORT.ID OsztalyID, T_OSZTALYCSOPORT.C_NEV OsztalyNev, kcs.CsoportID from T_OSZTALYCSOPORT --Az osztályhoz kapcsolódó csoportok óráit is listázzuk left join (Select OsztalyID, OsztalyNev, CsoportID from (select C_OSZTALYCSOPORTID OsztalyID, T_OSZTALYCSOPORT.C_NEV OsztalyNev, C_TANULOID TanuloID from T_TANULOCSOPORT INNER JOIN T_OSZTALY on T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID INNER JOIN T_OSZTALYCSOPORT on T_OSZTALY.ID = T_OSZTALYCSOPORT.ID where T_TANULOCSOPORT.TOROLT='F' and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE() and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) OsztalyTanuloi inner join (select T_CSOPORT.ID CsoportID, C_TANULOID TanuloID from T_TANULOCSOPORT inner join T_CSOPORT on T_TANULOCSOPORT.ID=T_CSOPORT.ID where T_CSOPORT.TOROLT='F' and T_TANULOCSOPORT.TOROLT='F' and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE() and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) Csoportok on OsztalyTanuloi.TanuloID = Csoportok.TanuloID) kcs on kcs.OsztalyID = T_OSZTALYCSOPORT.ID where T_OSZTALYCSOPORt.TOROLT = 'F') KapcsolodoCsoportok on KapcsolodoCsoportok.OsztalyID = @osztalyId and KapcsolodoCsoportok.OsztalyID = T_FOGLALKOZAS.C_OSZTALYCSOPORTID where T_ORARENDIORA.TOROLT='F' and naptar.TOROLT = 'F' and T_FOGLALKOZAS.TOROLT='F' and GETDATE() >= naptar.C_NAPDATUMA and T_TANITASIORA.ID IS NULL and KapcsolodoCsoportok.OsztalyID = @osztalyId union all select KapcsolodoCsoportok.OsztalyID osztalyID, KapcsolodoCsoportok.OsztalyNev OsztalyNev, naptar.C_HETSORSZAMA HetSzama, YEAR(naptar.c_napdatuma) EV from T_TANITASIORA inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_TANITASIORA.C_FOGLALKOZASID inner join T_NAPTARINAP naptar on T_TANITASIORA.C_DATUM = naptar.C_NAPDATUMA left join (select T_OSZTALYCSOPORT.ID OsztalyID, T_OSZTALYCSOPORT.C_NEV OsztalyNev, kcs.CsoportID from T_OSZTALYCSOPORT left join (Select OsztalyID, OsztalyNev, CsoportID from (select C_OSZTALYCSOPORTID OsztalyID, T_OSZTALYCSOPORT.C_NEV OsztalyNev, C_TANULOID TanuloID from T_TANULOCSOPORT inner join T_OSZTALY on T_TANULOCSOPORT.C_OSZTALYCSOPORTID = T_OSZTALY.ID inner join T_OSZTALYCSOPORT on T_OSZTALY.ID = T_OSZTALYCSOPORT.ID where T_TANULOCSOPORT.TOROLT='F' and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE() and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE())) OsztalyTanuloi inner join (select T_CSOPORT.ID CsoportID, C_TANULOID TanuloID from T_TANULOCSOPORT inner join T_CSOPORT on T_TANULOCSOPORT.ID=T_CSOPORT.ID where T_CSOPORT.TOROLT='F' and T_TANULOCSOPORT.TOROLT='F' and T_TANULOCSOPORT.C_BELEPESDATUM < GETDATE() and (T_TANULOCSOPORT.C_KILEPESDATUM is null or T_TANULOCSOPORT.C_KILEPESDATUM >= GETDATE()) ) Csoportok on OsztalyTanuloi.TanuloID = Csoportok.TanuloID) kcs on kcs.OsztalyID = T_OSZTALYCSOPORT.ID where T_OSZTALYCSOPORt.TOROLT = 'F') KapcsolodoCsoportok on KapcsolodoCsoportok.OsztalyID = @osztalyId and KapcsolodoCsoportok.OsztalyID = T_FOGLALKOZAS.C_OSZTALYCSOPORTID where T_TANITASIORA.C_ORARENDIORAGROUPID is null and T_TANITASIORA.C_MEGTARTOTT is null and KapcsolodoCsoportok.OsztalyID = @osztalyId ) Eszrevetelek left join T_NAPLOELLENORZES on ( T_NAPLOELLENORZES.C_OSZTALYID = @osztalyId AND T_NAPLOELLENORZES.C_HETSORSZAMA = Eszrevetelek.HetSzama AND T_NAPLOELLENORZES.TOROLT = 'F') left join T_FELHASZNALO Ellenorzo on Ellenorzo.ID = T_NAPLOELLENORZES.C_ELLENORZOSZEMELYID group by Eszrevetelek.EV, Eszrevetelek.HetSzama, T_NAPLOELLENORZES.ID, Ellenorzo.C_NYOMTATASINEV, T_NAPLOELLENORZES.C_ELLENORZESDATUMA, T_NAPLOELLENORZES.C_ESZREVETEL, T_NAPLOELLENORZES.C_OSZTALYID, Eszrevetelek.OsztalyID order by EV desc, Eszrevetelek.HetSzama desc END