init
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
DROP PROCEDURE IF EXISTS dbo.uspGetFelhasznaloOsztalyaiByFoglalkozasAndOsztfo
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE dbo.uspGetFelhasznaloOsztalyaiByFoglalkozasAndOsztfo
|
||||
@pFelhasznaloId INT,
|
||||
@pOsztalyGroupName VARCHAR(32),
|
||||
@pCsoportGroupName VARCHAR(32)
|
||||
AS
|
||||
BEGIN
|
||||
-- SET NOCOUNT ON added to prevent extra result sets from
|
||||
-- interfering with SELECT statements.
|
||||
SET NOCOUNT ON;
|
||||
DECLARE @Osztalyok TABLE (NumberOrder int,NumberAndTextOrder int, ID int, Nev VARCHAR(255),Tipus VARCHAR(255),Evfolyam VARCHAR(255))
|
||||
-- insert TFF-re filterelve
|
||||
INSERT INTO @Osztalyok(NumberOrder,NumberAndTextOrder,ID,Nev,Tipus,Evfolyam)
|
||||
SELECT DISTINCT
|
||||
CASE WHEN osztalyCsoport.C_NEV NOT LIKE '%[^0-9]%' THEN CAST(LEFT(osztalyCsoport.C_NEV,9) AS INT) ELSE 2147483647 END 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 NumberAndTextOrder,
|
||||
osztalyCsoport.ID ID,
|
||||
osztalyCsoport.C_NEV Nev,
|
||||
CASE WHEN o.ID IS NOT NULL THEN @pOsztalyGroupName ELSE @pCsoportGroupName END Tipus,
|
||||
osztalyCsoport.C_EVFOLYAMTIPUSA Evfolyam
|
||||
FROM
|
||||
T_FOGLALKOZAS foglalkozas
|
||||
INNER JOIN T_OSZTALYCSOPORT osztalyCsoport
|
||||
ON osztalyCsoport.ID = foglalkozas.C_OSZTALYCSOPORTID
|
||||
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 WHERE TOROLT = 'F') 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
|
||||
WHERE
|
||||
foglalkozas.TOROLT = 'F' AND
|
||||
foglalkozas.C_TANARID = @pFelhasznaloId
|
||||
-- insert Osztfo-re filterelve amelyeket meg nem tartalmazza a lista
|
||||
INSERT INTO @Osztalyok(NumberOrder,NumberAndTextOrder,ID,Nev,Tipus,Evfolyam)
|
||||
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,
|
||||
@pOsztalyGroupName AS Tipus,
|
||||
OsztalyCsoport.C_EVFOLYAMTIPUSA AS Evfolyam
|
||||
FROM T_OSZTALYCSOPORT OsztalyCsoport
|
||||
INNER JOIN T_OSZTALY osztaly ON OsztalyCsoport.ID = osztaly.ID AND (osztaly.C_OFOHELYETTESID = @pFelhasznaloId OR osztaly.C_OSZTALYFONOKID = @pFelhasznaloId) AND osztaly.TOROLT = 'F'
|
||||
LEFT JOIN @Osztalyok TTFosztalyok on TTFosztalyok.ID = OsztalyCsoport.ID
|
||||
WHERE OsztalyCsoport.TOROLT = 'F' AND TTFosztalyok.ID IS NULL
|
||||
|
||||
SELECT DISTINCT
|
||||
*
|
||||
FROM @Osztalyok
|
||||
ORDER BY Tipus DESC, NumberOrder ASC, NumberAndTextOrder ASC, Nev ASC
|
||||
END
|
Reference in New Issue
Block a user