-- ================================================ -- 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