kreta/Kreta.DataAccess.Migrations/DBScripts/Database/dbo/Stored procedures/sp_GetFelhasznaloOsztalyaiByFoglalkozas.sql
2024-03-13 00:33:46 +01:00

53 lines
No EOL
2.2 KiB
Transact-SQL

-- =============================================
-- Description: <Felhasználóhoz köthető osztályok foglalkozások alapján az értékelések szűréséhez>
-- =============================================
DROP PROCEDURE IF EXISTS [dbo].[sp_GetFelhasznaloOsztalyaiByFoglalkozas]
GO
CREATE PROCEDURE [dbo].[sp_GetFelhasznaloOsztalyaiByFoglalkozas]
@felhasznaloId INT
,@osztaly VARCHAR(32)
,@csoport VARCHAR(32)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT DISTINCT
CASE WHEN osztalyCsoport.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(osztalyCsoport.C_NEV,9) AS INT) ELSE 2147483647 END AS NumberOrder
,CASE WHEN LEFT(osztalyCsoport.C_NEV, 1) BETWEEN '0' AND '9' AND osztalyCsoport.C_NEV LIKE '%[^0-9]%' THEN CAST(LEFT(SUBSTRING(osztalyCsoport.C_NEV, 1, PATINDEX('%[^0-9]%', osztalyCsoport.C_NEV) - 1),9) AS INT) ELSE 2147483647 END AS NumberAndTextOrder
,osztalyCsoport.ID AS ID
,osztalyCsoport.C_NEV AS Nev
,CASE WHEN Osztaly IS NOT NULL THEN @osztaly ELSE @csoport END AS Tipus
,osztalyCsoport.C_EVFOLYAMTIPUSA AS Evfolyam
,feladatellatasiHely.C_OKTATASINEVELESIFELADATTIPUS AS EllatottFeladatTipusId
,csoport.C_TIPUSA AS CsoportTipusId
FROM
T_FOGLALKOZAS foglalkozas
LEFT JOIN T_OSZTALYCSOPORT osztalyCsoport
ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID
LEFT JOIN
T_CSOPORT csoport ON
csoport.ID = foglalkozas.C_OSZTALYCSOPORTID
AND csoport.TOROLT = 'F'
LEFT JOIN T_TANTARGY tantargy
ON tantargy.ID = foglalkozas.C_TANTARGYID
LEFT JOIN T_FELHASZNALO felhasznalo
ON felhasznalo.ID = foglalkozas.C_TANARID
LEFT JOIN (SELECT ID, 'T' AS Osztaly FROM T_OSZTALY_OSSZES) AS o
ON o.ID = osztalyCsoport.ID
LEFT JOIN (SELECT ID, C_TIPUSA FROM T_CSOPORT_OSSZES WHERE TOROLT = 'F') AS cs
ON cs.ID = osztalyCsoport.ID
INNER JOIN T_FELADATELLATASIHELY feladatellatasiHely
ON osztalyCsoport.C_FELADATELLATASIHELYID = feladatellatasiHely.ID
WHERE
foglalkozas.TOROLT = 'F' AND
foglalkozas.C_TANARID = @felhasznaloId
ORDER BY
NumberOrder ASC, NumberAndTextOrder ASC, osztalyCsoport.C_NEV ASC
END
GO