52 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
-- ================================================
 | 
						|
-- Template generated from Template Explorer using:
 | 
						|
-- Create Procedure (New Menu).SQL
 | 
						|
--
 | 
						|
-- Use the Specify Values for Template Parameters 
 | 
						|
-- command (Ctrl-Shift-M) to fill in the parameter 
 | 
						|
-- values below.
 | 
						|
--
 | 
						|
-- This block of comments will not be included in
 | 
						|
-- the definition of the procedure.
 | 
						|
-- ================================================
 | 
						|
IF OBJECT_ID('sp_GetHianyzoDuplikaltTanarok') IS NOT NULL BEGIN
 | 
						|
  DROP PROCEDURE sp_GetHianyzoDuplikaltTanarok
 | 
						|
END
 | 
						|
GO
 | 
						|
-- =============================================
 | 
						|
-- Author:		Sólyom Péter
 | 
						|
-- Create date: 2016.04.25.
 | 
						|
-- Description:	Az átadott xmlbõl (tanárok nevei) megvizsgálja hogy létezik ilyen nevû tanár a rendszerben és a név alapján egyértelmû (duplikált) vagy születési dátum alapján szûrt.
 | 
						|
-- =============================================
 | 
						|
CREATE PROCEDURE sp_GetHianyzoDuplikaltTanarok
 | 
						|
	-- Add the parameters for the stored procedure here
 | 
						|
   @tanarNevekXml xml
 | 
						|
  ,@feladatellatasiHelyId int
 | 
						|
  ,@tanevId int
 | 
						|
  ,@intezmenyId int
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
	-- SET NOCOUNT ON added to prevent extra result sets from
 | 
						|
	-- interfering with SELECT statements.
 | 
						|
	SET NOCOUNT ON;
 | 
						|
	DECLARE @TEMPTANAROK TABLE ( TANARNEV NVARCHAR(255), SZULETESIDATUM DATE )
 | 
						|
 | 
						|
	INSERT INTO @TEMPTANAROK
 | 
						|
    SELECT DISTINCT TanarNev = Tanar.value('(TanarNev)[1]', 'NVARCHAR(255)'),
 | 
						|
			SzuletesiDatum = Tanar.value('(SzuletesiDatum)[1]', 'DATE')
 | 
						|
		FROM @tanarNevekXml.nodes('/ArrayOfTanarNevekExcelModel/TanarNevekExcelModel') as Tanarok(Tanar)
 | 
						|
 | 
						|
	SELECT TANAROK.TANARNEV, TANAROK.SZULETESIDATUM, COUNT(FELH.ID) TANAROKSZAMA
 | 
						|
		FROM @TEMPTANAROK TANAROK
 | 
						|
			LEFT JOIN  (SELECT * FROM T_FELHASZNALO_OSSZES WHERE TOROLT = 'F' AND C_TANEVID = @tanevId) FELH ON ( RTRIM(LTRIM(TANAROK.TANARNEV)) = FELH.C_NYOMTATASINEV 
 | 
						|
			 AND  NOT EXISTS (SELECT 1 FROM T_TANULO_OSSZES t where t.ID = FELH.ID AND t.C_ALTANEVID = @tanevId)
 | 
						|
			 AND (TANAROK.SZULETESIDATUM IS NULL OR TANAROK.SZULETESIDATUM = FELH.C_SZULETESIDATUM
 | 
						|
		     AND EXISTS ( SELECT 1 FROM T_MUNKAUGYIADATOK_OSSZES tm 
 | 
						|
						  WHERE tm.C_ALKALMAZOTTID = FELH.ID AND tm.TOROLT='F' AND tm.C_FELADATELLATASIHELYID = @feladatellatasiHelyId AND tm.C_TANEVID = @tanevId)					 
 | 
						|
		    AND FELH.TOROLT = 'F')) 
 | 
						|
			GROUP BY TANAROK.TANARNEV, TANAROK.SZULETESIDATUM
 | 
						|
			HAVING (COUNT(FELH.ID) <> 1)
 | 
						|
			ORDER BY TANAROK.TANARNEV, TANAROK.SZULETESIDATUM
 | 
						|
END
 | 
						|
GO
 |