kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170608125956_KRETA_1650/sp_GetHianyzoDuplikaltTanarok.sql
2024-03-13 00:33:46 +01:00

51 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