GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Zsiga Attila -- Create date: 2016.10.21. -- Description: Az input órarendi órákhoz tartozó tanulókat adja vissza. -- ============================================= IF OBJECT_ID('sp_GetOrarendiorakhozTartozoTanulok') IS NOT NULL BEGIN DROP PROCEDURE sp_GetOrarendiorakhozTartozoTanulok END GO CREATE PROCEDURE sp_GetOrarendiorakhozTartozoTanulok @pXml xml, @pTanevId INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; SET XACT_ABORT ON DECLARE @T_ORARENDIORAID TABLE (id int); DECLARE @T_TANULOID TABLE (TanuloId INT, OsztalyCsoportId INT, OsztalyCsoportNev VARCHAR(MAX)); INSERT INTO @T_ORARENDIORAID SELECT sor.value('.', 'int') AS id FROM @pXml.nodes('/OrarendiOrak/IdLista/Id') as sorok(sor) --TEMP TABLES SELECT * INTO #TEMPORARENDIORA FROM T_ORARENDIORA WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId --------------- SELECT * INTO #TEMPTANULO FROM T_TANULO WHERE TOROLT = 'F' AND C_ALTANEVID = @pTanevId --------------- SELECT * INTO #TEMPOSZTALYCSOPORT FROM T_OSZTALYCSOPORT WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId --------------- SELECT * INTO #TEMPTANULOCSOPORT FROM T_TANULOCSOPORT WHERE TOROLT = 'F' AND C_TANEVID = @pTanevId --------------- INSERT INTO @T_TANULOID(TanuloId, OsztalyCsoportId, OsztalyCsoportNev) SELECT #TEMPTANULOCSOPORT.C_TANULOID TanuloId, #TEMPOSZTALYCSOPORT.ID OsztalyCsoportId, #TEMPOSZTALYCSOPORT.C_NEV OsztalyCsoportNev FROM #TEMPORARENDIORA LEFT JOIN #TEMPOSZTALYCSOPORT ON #TEMPOSZTALYCSOPORT.ID = #TEMPORARENDIORA.C_OSZTALYCSOPORTID INNER JOIN #TEMPTANULOCSOPORT ON #TEMPTANULOCSOPORT.C_OSZTALYCSOPORTID = #TEMPOSZTALYCSOPORT.ID WHERE #TEMPORARENDIORA.ID IN (SELECT Id FROM @T_ORARENDIORAID) --------------- SELECT DISTINCT TanuloId FROM @T_TANULOID; DROP TABLE #TEMPORARENDIORA DROP TABLE #TEMPTANULO DROP TABLE #TEMPOSZTALYCSOPORT DROP TABLE #TEMPTANULOCSOPORT END