67 lines
2 KiB
Transact-SQL
67 lines
2 KiB
Transact-SQL
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
|