init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,83 @@
|
|||
/*
|
||||
Csak üres (1817) mulasztások - a legkorábbi maradjon
|
||||
Hiányzás (1500) + üres (1817) (vagy fordítva) - A hiányzás maradjon
|
||||
Késés (1499) + Késés (1499) esetén egybe összeadni a kettő értékét, ha minkettő igazolt vagy igazolatlan, ha különböző akkor az igazoltat hagyjuk meg
|
||||
Késés (1499) + hiányzás (1500) (vagy fordítva) - hiányzás maradjon
|
||||
N * Hiányzás (1500) - Legkorábbi igazolt ha van, egyébként a legkorábbi
|
||||
*/
|
||||
|
||||
DROP TABLE IF EXISTS #tmp
|
||||
SELECT tm.ID,x.*,dib.C_NAME
|
||||
INTO #tmp
|
||||
FROM(
|
||||
SELECT
|
||||
C_ORATANULOIID
|
||||
,C_TANITASIORAKID
|
||||
FROM T_TANULOMULASZTAS tm
|
||||
|
||||
WHERE tm.TOROLT='F'
|
||||
GROUP BY C_ORATANULOIID,C_TANITASIORAKID
|
||||
HAVING COUNT(*)>1) x
|
||||
INNER JOIN T_TANULOMULASZTAS tm ON tm.TOROLT='F' AND tm.C_ORATANULOIID = x.C_ORATANULOIID AND tm.C_TANITASIORAKID = x.C_TANITASIORAKID
|
||||
INNER JOIN T_DICTIONARYITEMBASE dib ON dib.ID=tm.C_TIPUS AND dib.C_TANEVID=tm.C_TANEVID
|
||||
|
||||
DROP TABLE IF EXISTS #mulasztasok
|
||||
SELECT
|
||||
Count(*) db
|
||||
,STUFF((SELECT DISTINCT ', ' + C_NAME FROM #tmp WHERE #tmp.C_ORATANULOIID=t.C_ORATANULOIID AND #tmp.C_TANITASIORAKID=t.C_TANITASIORAKID FOR XML PATH('')), 1, 1, '') type
|
||||
,C_ORATANULOIID
|
||||
,C_TANITASIORAKID
|
||||
INTO #mulasztasok
|
||||
FROM #tmp t
|
||||
GROUP BY C_ORATANULOIID,C_TANITASIORAKID
|
||||
--================1. Csak üres (1817) mulasztások - a legkorábbi maradjon=========================
|
||||
UPDATE T_TANULOMULASZTAS SET TOROLT='T',LASTCHANGED=GETDATE(),MODIFIER=0 WHERE ID IN (
|
||||
SELECT ID FROM(
|
||||
SELECT ROW_NUMBER() OVER (PARTITION BY tm.C_ORATANULOIID,tm.C_TANITASIORAKID ORDER BY tm.CREATED ASC) rn,tm.ID FROM #mulasztasok m
|
||||
INNER JOIN T_TANULOMULASZTAS tm ON tm.C_ORATANULOIID=m.C_ORATANULOIID AND tm.C_TANITASIORAKID = m.C_TANITASIORAKID AND tm.TOROLT='F'
|
||||
WHERE m.type = ' Üres') x WHERE x.rn>1)
|
||||
--================2. Hiányzás (1500) + üres (1817) (vagy fordítva) - A hiányzás maradjon=========================
|
||||
UPDATE T_TANULOMULASZTAS SET TOROLT='T',LASTCHANGED=GETDATE(),MODIFIER=0 WHERE ID IN (
|
||||
SELECT ID FROM(
|
||||
SELECT ROW_NUMBER() OVER (PARTITION BY tm.C_ORATANULOIID,tm.C_TANITASIORAKID ORDER BY tm.C_TIPUS, tm.CREATED ASC) rn,tm.ID FROM #mulasztasok m
|
||||
INNER JOIN T_TANULOMULASZTAS tm ON tm.C_ORATANULOIID=m.C_ORATANULOIID AND tm.C_TANITASIORAKID = m.C_TANITASIORAKID AND tm.TOROLT='F'
|
||||
WHERE m.type = ' Hiányzás, Üres') x WHERE x.rn>1)
|
||||
--================3. Késés (1499) + Késés (1499) esetén egybe összeadni a kettő értékét, ha minkettő igazolt vagy igazolatlan, ha különböző akkor az igazoltat hagyjuk meg=========================
|
||||
UPDATE tm SET C_KESESPERCBEN = szum FROM (
|
||||
SELECT SUM(C_KESESPERCBEN) szum,tm.C_ORATANULOIID,tm.C_TANITASIORAKID,ISNULL(tm.C_IGAZOLT,'-') C_IGAZOLT FROM #mulasztasok m
|
||||
INNER JOIN T_TANULOMULASZTAS tm ON tm.C_ORATANULOIID = m.C_ORATANULOIID AND tm.C_TANITASIORAKID = m.C_TANITASIORAKID AND tm.TOROLT='F'
|
||||
WHERE m.type = ' Késés'
|
||||
GROUP BY tm.C_ORATANULOIID,tm.C_TANITASIORAKID,ISNULL(tm.C_IGAZOLT,'-')) x
|
||||
INNER JOIN T_TANULOMULASZTAS tm ON tm.C_ORATANULOIID=x.C_ORATANULOIID AND tm.C_TANITASIORAKID=x.C_TANITASIORAKID AND ISNULL(tm.C_IGAZOLT,'-') = x.C_IGAZOLT AND tm.TOROLT='F'
|
||||
|
||||
UPDATE T_TANULOMULASZTAS SET TOROLT='T',LASTCHANGED=GETDATE(),MODIFIER=0 WHERE ID IN (
|
||||
SELECT ID FROM(
|
||||
SELECT ROW_NUMBER() OVER (PARTITION BY tm.C_ORATANULOIID,tm.C_TANITASIORAKID ORDER BY tm.C_IGAZOLT DESC, tm.CREATED ASC) rn,tm.ID FROM #mulasztasok m
|
||||
INNER JOIN T_TANULOMULASZTAS tm ON tm.C_ORATANULOIID=m.C_ORATANULOIID AND tm.C_TANITASIORAKID = m.C_TANITASIORAKID AND tm.TOROLT='F'
|
||||
WHERE m.type = ' Késés') x WHERE x.rn>1)
|
||||
|
||||
|
||||
--================4. Késés (1499) + hiányzás (1500) (vagy fordítva) - hiányzás maradjon =========================
|
||||
UPDATE T_TANULOMULASZTAS SET TOROLT='T',LASTCHANGED=GETDATE(),MODIFIER=0 WHERE ID IN (
|
||||
SELECT ID FROM(
|
||||
SELECT ROW_NUMBER() OVER (PARTITION BY tm.C_ORATANULOIID,tm.C_TANITASIORAKID ORDER BY tm.C_TIPUS, tm.CREATED ASC) rn,tm.ID FROM #mulasztasok m
|
||||
INNER JOIN T_TANULOMULASZTAS tm ON tm.C_ORATANULOIID=m.C_ORATANULOIID AND tm.C_TANITASIORAKID = m.C_TANITASIORAKID AND tm.TOROLT='F'
|
||||
WHERE m.type = ' Hiányzás, Késés') x WHERE x.rn>1)
|
||||
--================5. N * Hiányzás (1500) - Legkorábbi igazolt ha van, egyébként a legkorábbi=========================
|
||||
UPDATE T_TANULOMULASZTAS SET TOROLT='T',LASTCHANGED=GETDATE(),MODIFIER=0 WHERE ID IN (
|
||||
SELECT ID FROM(
|
||||
SELECT ROW_NUMBER() OVER (PARTITION BY tm.C_ORATANULOIID,tm.C_TANITASIORAKID ORDER BY tm.C_IGAZOLT DESC,tm.CREATED ASC) rn,tm.ID FROM #mulasztasok m
|
||||
INNER JOIN T_TANULOMULASZTAS tm ON tm.C_ORATANULOIID=m.C_ORATANULOIID AND tm.C_TANITASIORAKID = m.C_TANITASIORAKID AND tm.TOROLT='F'
|
||||
WHERE m.type = ' Hiányzás') x WHERE x.rn>1)
|
||||
--==================INDEX===============================
|
||||
DROP INDEX IF EXISTS T_TANULOMULASZTAS.NCU_TanuloMulasztas_OratanuloiId_TanitasiOrakid
|
||||
CREATE UNIQUE INDEX NCU_TanuloMulasztas_OratanuloiId_TanitasiOrakid
|
||||
ON T_TANULOMULASZTAS(
|
||||
C_ORATANULOIID
|
||||
,C_TANITASIORAKID
|
||||
)
|
||||
WHERE TOROLT='F'
|
||||
WITH (FILLFACTOR = 80)
|
||||
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue