kreta/Kreta.DataAccess.Migrations/Scripts/Archive/20170327110702_Init/Stored procedures/sp_GetOrarendiOrakhozTartozoTanulok.sql
2024-03-13 00:33:46 +01:00

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