68 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
GO
 | 
						|
/****** Object:  StoredProcedure [dbo].[sp_GetOsszesNemBejegyzettOra]    Script Date: 2016.01.27. 11:35:23 ******/
 | 
						|
SET ANSI_NULLS ON
 | 
						|
GO
 | 
						|
SET QUOTED_IDENTIFIER ON
 | 
						|
GO
 | 
						|
 | 
						|
IF OBJECT_ID('[DBO].[sp_GetOsszesNemBejegyzettOra]') IS NOT NULL BEGIN
 | 
						|
  DROP PROCEDURE [DBO].[sp_GetOsszesNemBejegyzettOra]
 | 
						|
END  
 | 
						|
GO
 | 
						|
 | 
						|
-- =============================================
 | 
						|
-- Author:		<Kelemen Attila>
 | 
						|
-- Create date: <2016. 01. 07.>
 | 
						|
-- Description:	<Azok a megtartott, vagy elmaradt órák, amik nincsenek bejegyezve a naplóba, havi bontásban, tanáronként>
 | 
						|
-- =============================================
 | 
						|
CREATE PROCEDURE [dbo].[sp_GetOsszesNemBejegyzettOra]
 | 
						|
	@tanevID int,
 | 
						|
	@mindenHeten int
 | 
						|
	AS
 | 
						|
BEGIN
 | 
						|
	-- SET NOCOUNT ON added to prevent extra result sets from
 | 
						|
	-- interfering with SELECT statements.
 | 
						|
	SET NOCOUNT ON;
 | 
						|
 | 
						|
 | 
						|
	--Nem naplózott órák
 | 
						|
		select
 | 
						|
		MONTH(naptar.C_NAPDATUMA) Honap,
 | 
						|
		T_FELHASZNALO.C_NYOMTATASINEV TanarNeve,
 | 
						|
		COUNT(*)
 | 
						|
 | 
						|
        FROM
 | 
						|
            T_ORARENDIORA
 | 
						|
            inner join T_FOGLALKOZAS on T_FOGLALKOZAS.ID= T_ORARENDIORA.C_FOGLALKOZASID
 | 
						|
			inner join T_NAPTARINAP naptar on ((naptar.C_NAPDATUMA BETWEEN T_ORARENDIORA.C_ORAERVENYESSEGKEZDETE AND T_ORARENDIORA.C_ORAERVENYESSEGVEGE)
 | 
						|
												AND (naptar.C_HETIREND = T_ORARENDIORA.C_HETIREND OR T_ORARENDIORA.C_HETIREND = @mindenHeten)) -- Minden héten
 | 
						|
			INNER JOIN T_CSENGETESIRENDORA on T_ORARENDIORA.C_CSENGETESIRENDORAID=T_CSENGETESIRENDORA.ID
 | 
						|
			LEFT JOIN T_TANITASIORA ON T_TANITASIORA.C_ORARENDIORAID = T_ORARENDIORA.ID AND T_TANITASIORA.TOROLT='F'
 | 
						|
			inner join T_FELHASZNALO on T_FOGLALKOZAS.C_TANARID = T_FELHASZNALO.ID
 | 
						|
		WHERE
 | 
						|
			 T_ORARENDIORA.TOROLT='F' 
 | 
						|
			 AND naptar.TOROLT = 'F' AND T_FOGLALKOZAS.TOROLT='F'
 | 
						|
			 AND T_FOGLALKOZAS.TOROLT='F'
 | 
						|
			 AND T_FELHASZNALO.TOROLT='F'
 | 
						|
			 AND GETDATE() >= naptar.C_NAPDATUMA
 | 
						|
			 AND T_TANITASIORA.ID IS NULL
 | 
						|
			 AND T_FOGLALKOZAS.C_TANEVID = @tanevID
 | 
						|
			 
 | 
						|
			 
 | 
						|
			 group by MONTH(naptar.C_NAPDATUMA), T_FELHASZNALO.C_NYOMTATASINEV
 | 
						|
			 order by case --Hónapok sorrendje
 | 
						|
				when MONTH(naptar.C_NAPDATUMA) = 9 then 1 
 | 
						|
				when MONTH(naptar.C_NAPDATUMA) = 10 then 2
 | 
						|
				when MONTH(naptar.C_NAPDATUMA) = 11 then 3
 | 
						|
				when MONTH(naptar.C_NAPDATUMA) = 12 then 4 
 | 
						|
				when MONTH(naptar.C_NAPDATUMA) = 1 then 5
 | 
						|
				when MONTH(naptar.C_NAPDATUMA) = 2 then 6
 | 
						|
				when MONTH(naptar.C_NAPDATUMA) = 3 then 7
 | 
						|
				when MONTH(naptar.C_NAPDATUMA) = 4 then 8
 | 
						|
				when MONTH(naptar.C_NAPDATUMA) = 5 then 9
 | 
						|
				when MONTH(naptar.C_NAPDATUMA) = 6 then 10
 | 
						|
				when MONTH(naptar.C_NAPDATUMA) = 7 then 11
 | 
						|
				when MONTH(naptar.C_NAPDATUMA) = 8 then 12
 | 
						|
       end;
 | 
						|
END 
 |