init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,263 @@
|
|||
DROP PROCEDURE IF EXISTS uspUpdateIDPEgyediAzonosito
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE uspUpdateIDPEgyediAzonosito
|
||||
AS
|
||||
-- Ez az eljárás az IDP egyedi azonosítók frissítétéhez használható
|
||||
|
||||
SET NOCOUNT ON;
|
||||
|
||||
|
||||
-- FELHASZNÁLÓ esetén
|
||||
-- 1. lépés: összes hiányzó IDP kitöltése egy uj guid-al az aktuális tanévben
|
||||
UPDATE akt SET
|
||||
akt.C_IDPEGYEDIAZONOSITO = NEWID()
|
||||
FROM T_FELHASZNALO_OSSZES akt
|
||||
INNER JOIN T_TANEV_OSSZES akttv ON akttv.ID = akt.C_TANEVID
|
||||
AND akttv.C_INTEZMENYID = akt.C_INTEZMENYID
|
||||
AND akttv.C_AKTIV = 'T'
|
||||
AND akttv.TOROLT = 'F'
|
||||
WHERE 1 = 1
|
||||
AND akt.TOROLT = 'F'
|
||||
AND akt.C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000'
|
||||
AND akt.C_EGYEDIAZONOSITO <> '00000000-0000-0000-0000-000000000000';
|
||||
|
||||
|
||||
|
||||
-- 2. lépés: Az IDP átvétele előző-következő tanévre
|
||||
-- 10 azonosítóval
|
||||
UPDATE pre SET
|
||||
pre.C_IDPEGYEDIAZONOSITO = akt.C_IDPEGYEDIAZONOSITO
|
||||
FROM T_FELHASZNALO_OSSZES pre
|
||||
INNER JOIN T_FELHASZNALO_OSSZES akt ON akt.C_INTEZMENYID = pre.C_INTEZMENYID
|
||||
AND akt.C_ANYJANEVE = pre.C_ANYJANEVE
|
||||
AND ISNULL(LEFT(pre.C_SZULETESIHELY + ' ', CHARINDEX(' ', pre.C_SZULETESIHELY + ' ') - 1), '') = ISNULL(LEFT(akt.C_SZULETESIHELY + ' ', CHARINDEX(' ', akt.C_SZULETESIHELY + ' ') - 1), '')
|
||||
AND akt.C_SZULETESIDATUM = pre.C_SZULETESIDATUM
|
||||
AND akt.C_SZULETESINEV = pre.C_SZULETESINEV
|
||||
AND akt.C_NYOMTATASINEV = pre.C_NYOMTATASINEV
|
||||
AND akt.C_NEME = pre.C_NEME
|
||||
AND ISNULL(akt.C_OKTATASIAZONOSITO, '') = ISNULL(pre.C_OKTATASIAZONOSITO, '')
|
||||
AND ISNULL(akt.C_TAJSZAM, '') = ISNULL(pre.C_TAJSZAM, '')
|
||||
AND ISNULL(akt.C_ADOSZAM, '') = ISNULL(pre.C_ADOSZAM, '')
|
||||
AND akt.ELOZOTANEVIREKORDID = pre.ID
|
||||
INNER JOIN T_TANEV_OSSZES akttv ON akttv.ID = akt.C_TANEVID
|
||||
AND akttv.C_AKTIV = 'T'
|
||||
AND akttv.TOROLT = 'F'
|
||||
AND pre.C_TANEVID <> akt.C_TANEVID
|
||||
WHERE akt.TOROLT = 'F'
|
||||
AND pre.C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000';
|
||||
|
||||
-- 9 azonosítóval
|
||||
UPDATE pre SET
|
||||
pre.C_IDPEGYEDIAZONOSITO = akt.C_IDPEGYEDIAZONOSITO
|
||||
FROM T_FELHASZNALO_OSSZES pre
|
||||
INNER JOIN T_FELHASZNALO_OSSZES akt ON akt.C_INTEZMENYID = pre.C_INTEZMENYID
|
||||
AND akt.C_ANYJANEVE = pre.C_ANYJANEVE
|
||||
AND ISNULL(LEFT(pre.C_SZULETESIHELY + ' ', CHARINDEX(' ', pre.C_SZULETESIHELY + ' ') - 1), '') = ISNULL(LEFT(akt.C_SZULETESIHELY + ' ', CHARINDEX(' ', akt.C_SZULETESIHELY + ' ') - 1), '')
|
||||
AND akt.C_SZULETESIDATUM = pre.C_SZULETESIDATUM
|
||||
AND akt.C_SZULETESINEV = pre.C_SZULETESINEV
|
||||
AND akt.C_NYOMTATASINEV = pre.C_NYOMTATASINEV
|
||||
AND akt.C_NEME = pre.C_NEME
|
||||
AND ISNULL(akt.C_OKTATASIAZONOSITO, '') = ISNULL(pre.C_OKTATASIAZONOSITO, '')
|
||||
AND ISNULL(akt.C_TAJSZAM, '') = ISNULL(pre.C_TAJSZAM, '')
|
||||
AND ISNULL(akt.C_ADOSZAM, '') = ISNULL(pre.C_ADOSZAM, '')
|
||||
INNER JOIN T_TANEV_OSSZES akttv ON akttv.ID = akt.C_TANEVID
|
||||
AND akttv.C_AKTIV = 'T'
|
||||
AND akttv.TOROLT = 'F'
|
||||
AND pre.C_TANEVID <> akt.C_TANEVID
|
||||
WHERE akt.TOROLT = 'F'
|
||||
AND pre.C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000';
|
||||
|
||||
-- 8 azonosítóval
|
||||
UPDATE pre SET
|
||||
pre.C_IDPEGYEDIAZONOSITO = akt.C_IDPEGYEDIAZONOSITO
|
||||
FROM T_FELHASZNALO_OSSZES pre
|
||||
INNER JOIN T_FELHASZNALO_OSSZES akt ON akt.C_INTEZMENYID = pre.C_INTEZMENYID
|
||||
AND akt.C_ANYJANEVE = pre.C_ANYJANEVE
|
||||
AND ISNULL(LEFT(pre.C_SZULETESIHELY + ' ', CHARINDEX(' ', pre.C_SZULETESIHELY + ' ') - 1), '') = ISNULL(LEFT(akt.C_SZULETESIHELY + ' ', CHARINDEX(' ', akt.C_SZULETESIHELY + ' ') - 1), '')
|
||||
AND akt.C_SZULETESIDATUM = pre.C_SZULETESIDATUM
|
||||
AND akt.C_SZULETESINEV = pre.C_SZULETESINEV
|
||||
AND akt.C_NYOMTATASINEV = pre.C_NYOMTATASINEV
|
||||
AND akt.C_NEME = pre.C_NEME
|
||||
AND ISNULL(akt.C_OKTATASIAZONOSITO, '') = ISNULL(pre.C_OKTATASIAZONOSITO, '')
|
||||
AND ISNULL(akt.C_TAJSZAM, '') = ISNULL(pre.C_TAJSZAM, '')
|
||||
INNER JOIN T_TANEV_OSSZES akttv ON akttv.ID = akt.C_TANEVID
|
||||
AND akttv.C_AKTIV = 'T'
|
||||
AND akttv.TOROLT = 'F'
|
||||
WHERE akt.TOROLT = 'F'
|
||||
AND pre.C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000';
|
||||
|
||||
-- 7 azonosítóval
|
||||
UPDATE pre SET
|
||||
pre.C_IDPEGYEDIAZONOSITO = akt.C_IDPEGYEDIAZONOSITO
|
||||
FROM T_FELHASZNALO_OSSZES pre
|
||||
INNER JOIN T_FELHASZNALO_OSSZES akt ON akt.C_INTEZMENYID = pre.C_INTEZMENYID
|
||||
AND akt.C_ANYJANEVE = pre.C_ANYJANEVE
|
||||
AND ISNULL(LEFT(pre.C_SZULETESIHELY + ' ', CHARINDEX(' ', pre.C_SZULETESIHELY + ' ') - 1), '') = ISNULL(LEFT(akt.C_SZULETESIHELY + ' ', CHARINDEX(' ', akt.C_SZULETESIHELY + ' ') - 1), '')
|
||||
AND akt.C_SZULETESIDATUM = pre.C_SZULETESIDATUM
|
||||
AND akt.C_SZULETESINEV = pre.C_SZULETESINEV
|
||||
AND akt.C_NYOMTATASINEV = pre.C_NYOMTATASINEV
|
||||
AND akt.C_NEME = pre.C_NEME
|
||||
AND ISNULL(akt.C_OKTATASIAZONOSITO, '') = ISNULL(pre.C_OKTATASIAZONOSITO, '')
|
||||
INNER JOIN T_TANEV_OSSZES akttv ON akttv.ID = akt.C_TANEVID
|
||||
AND akttv.C_AKTIV = 'T'
|
||||
AND akttv.TOROLT = 'F'
|
||||
AND pre.C_TANEVID <> akt.C_TANEVID
|
||||
WHERE akt.TOROLT = 'F'
|
||||
AND pre.C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000';
|
||||
|
||||
-- 6 azonosítóval
|
||||
UPDATE pre SET
|
||||
pre.C_IDPEGYEDIAZONOSITO = akt.C_IDPEGYEDIAZONOSITO
|
||||
FROM T_FELHASZNALO_OSSZES pre
|
||||
INNER JOIN T_FELHASZNALO_OSSZES akt ON akt.C_INTEZMENYID = pre.C_INTEZMENYID
|
||||
AND akt.C_ANYJANEVE = pre.C_ANYJANEVE
|
||||
AND ISNULL(LEFT(pre.C_SZULETESIHELY + ' ', CHARINDEX(' ', pre.C_SZULETESIHELY + ' ') - 1), '') = ISNULL(LEFT(akt.C_SZULETESIHELY + ' ', CHARINDEX(' ', akt.C_SZULETESIHELY + ' ') - 1), '')
|
||||
AND akt.C_SZULETESIDATUM = pre.C_SZULETESIDATUM
|
||||
AND akt.C_SZULETESINEV = pre.C_SZULETESINEV
|
||||
AND akt.C_NYOMTATASINEV = pre.C_NYOMTATASINEV
|
||||
AND akt.C_NEME = pre.C_NEME
|
||||
INNER JOIN T_TANEV_OSSZES akttv ON akttv.ID = akt.C_TANEVID
|
||||
AND akttv.C_AKTIV = 'T'
|
||||
AND akttv.TOROLT = 'F'
|
||||
AND pre.C_TANEVID <> akt.C_TANEVID
|
||||
WHERE akt.TOROLT = 'F'
|
||||
AND pre.C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000';
|
||||
|
||||
-- 5 azonosítóval
|
||||
UPDATE pre SET
|
||||
pre.C_IDPEGYEDIAZONOSITO = akt.C_IDPEGYEDIAZONOSITO
|
||||
FROM T_FELHASZNALO_OSSZES pre
|
||||
INNER JOIN T_FELHASZNALO_OSSZES akt ON akt.C_INTEZMENYID = pre.C_INTEZMENYID
|
||||
AND akt.C_ANYJANEVE = pre.C_ANYJANEVE
|
||||
AND ISNULL(LEFT(pre.C_SZULETESIHELY + ' ', CHARINDEX(' ', pre.C_SZULETESIHELY + ' ') - 1), '') = ISNULL(LEFT(akt.C_SZULETESIHELY + ' ', CHARINDEX(' ', akt.C_SZULETESIHELY + ' ') - 1), '')
|
||||
AND akt.C_SZULETESIDATUM = pre.C_SZULETESIDATUM
|
||||
AND akt.C_SZULETESINEV = pre.C_SZULETESINEV
|
||||
AND akt.C_NEME = pre.C_NEME
|
||||
INNER JOIN T_TANEV_OSSZES akttv ON akttv.ID = akt.C_TANEVID
|
||||
AND akttv.C_AKTIV = 'T'
|
||||
AND akttv.TOROLT = 'F'
|
||||
AND pre.C_TANEVID <> akt.C_TANEVID
|
||||
WHERE akt.TOROLT = 'F'
|
||||
AND pre.C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000';
|
||||
|
||||
-- 4 azonosítóval
|
||||
UPDATE pre SET
|
||||
pre.C_IDPEGYEDIAZONOSITO = akt.C_IDPEGYEDIAZONOSITO
|
||||
FROM T_FELHASZNALO_OSSZES pre
|
||||
INNER JOIN T_FELHASZNALO_OSSZES akt ON akt.C_INTEZMENYID = pre.C_INTEZMENYID
|
||||
AND akt.C_ANYJANEVE = pre.C_ANYJANEVE
|
||||
AND akt.C_SZULETESIHELY = pre.C_SZULETESIHELY
|
||||
AND akt.C_SZULETESIDATUM = pre.C_SZULETESIDATUM
|
||||
AND akt.C_SZULETESINEV = pre.C_SZULETESINEV
|
||||
INNER JOIN T_TANEV_OSSZES akttv ON akttv.ID = akt.C_TANEVID
|
||||
AND akttv.C_AKTIV = 'T'
|
||||
AND akttv.TOROLT = 'F'
|
||||
AND pre.C_TANEVID <> akt.C_TANEVID
|
||||
WHERE akt.TOROLT = 'F'
|
||||
AND pre.C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000';
|
||||
|
||||
-- 3 azonosítóval
|
||||
UPDATE pre SET
|
||||
pre.C_IDPEGYEDIAZONOSITO = akt.C_IDPEGYEDIAZONOSITO
|
||||
FROM T_FELHASZNALO_OSSZES pre
|
||||
INNER JOIN T_FELHASZNALO_OSSZES akt ON akt.C_INTEZMENYID = pre.C_INTEZMENYID
|
||||
AND akt.C_ANYJANEVE = pre.C_ANYJANEVE
|
||||
AND ISNULL(LEFT(pre.C_SZULETESIHELY + ' ', CHARINDEX(' ', pre.C_SZULETESIHELY + ' ') - 1), '') = ISNULL(LEFT(akt.C_SZULETESIHELY + ' ', CHARINDEX(' ', akt.C_SZULETESIHELY + ' ') - 1), '')
|
||||
AND akt.C_SZULETESIDATUM = pre.C_SZULETESIDATUM
|
||||
AND akt.C_SZULETESINEV = pre.C_SZULETESINEV
|
||||
INNER JOIN T_TANEV_OSSZES akttv ON akttv.ID = akt.C_TANEVID
|
||||
AND akttv.C_AKTIV = 'T'
|
||||
AND akttv.TOROLT = 'F'
|
||||
AND pre.C_TANEVID <> akt.C_TANEVID
|
||||
WHERE akt.TOROLT = 'F'
|
||||
AND pre.C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000';
|
||||
|
||||
-- 3 azonosítóval
|
||||
UPDATE pre SET
|
||||
pre.C_IDPEGYEDIAZONOSITO = akt.C_IDPEGYEDIAZONOSITO
|
||||
FROM T_FELHASZNALO_OSSZES pre
|
||||
INNER JOIN T_FELHASZNALO_OSSZES akt ON akt.C_INTEZMENYID = pre.C_INTEZMENYID
|
||||
AND akt.C_ANYJANEVE = pre.C_ANYJANEVE
|
||||
AND ISNULL(LEFT(pre.C_SZULETESIHELY + ' ', CHARINDEX(' ', pre.C_SZULETESIHELY + ' ') - 1), '') = ISNULL(LEFT(akt.C_SZULETESIHELY + ' ', CHARINDEX(' ', akt.C_SZULETESIHELY + ' ') - 1), '')
|
||||
AND akt.C_SZULETESIDATUM = pre.C_SZULETESIDATUM
|
||||
AND akt.C_NYOMTATASINEV = pre.C_NYOMTATASINEV
|
||||
INNER JOIN T_TANEV_OSSZES akttv ON akttv.ID = akt.C_TANEVID
|
||||
AND akttv.C_AKTIV = 'T'
|
||||
AND akttv.TOROLT = 'F'
|
||||
AND pre.C_TANEVID <> akt.C_TANEVID
|
||||
WHERE akt.TOROLT = 'F'
|
||||
AND pre.C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000';
|
||||
|
||||
|
||||
|
||||
-- 3. lépés: összes hiányzó IDP kitöltése más tanévekben
|
||||
UPDATE pre SET
|
||||
pre.C_IDPEGYEDIAZONOSITO = pre.C_EGYEDIAZONOSITO
|
||||
FROM T_FELHASZNALO_OSSZES pre
|
||||
INNER JOIN T_TANEV_OSSZES akttv ON akttv.ID = pre.C_TANEVID
|
||||
AND akttv.C_INTEZMENYID = pre.C_INTEZMENYID
|
||||
AND akttv.C_AKTIV = 'F'
|
||||
AND akttv.TOROLT = 'F'
|
||||
WHERE pre.C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000';
|
||||
|
||||
|
||||
|
||||
-- 4. lépés: ha az IDP azonosító valamelyik tanévben kétszer is szerepel,
|
||||
-- akkor csak egyet tartunk meg a többinek adunk egy új ID-t
|
||||
UPDATE akt SET
|
||||
akt.C_IDPEGYEDIAZONOSITO = NEWID()
|
||||
FROM T_FELHASZNALO_OSSZES akt
|
||||
INNER JOIN T_TANEV_OSSZES akttv ON akttv.ID = akt.C_TANEVID AND akttv.TOROLT = 'F'
|
||||
INNER JOIN (
|
||||
SELECT C_INTEZMENYID, C_TANEVID, C_IDPEGYEDIAZONOSITO, COUNT(*) C, MAX(ID) MAX_ID
|
||||
FROM T_FELHASZNALO_OSSZES
|
||||
GROUP BY C_INTEZMENYID, C_TANEVID, C_IDPEGYEDIAZONOSITO
|
||||
HAVING COUNT(*) > 1
|
||||
) dupl ON akt.C_INTEZMENYID = dupl.C_INTEZMENYID
|
||||
AND akt.C_TANEVID = dupl.C_TANEVID
|
||||
AND akt.C_IDPEGYEDIAZONOSITO = dupl.C_IDPEGYEDIAZONOSITO
|
||||
AND akt.ID <> dupl.MAX_ID
|
||||
WHERE akt.C_IDPEGYEDIAZONOSITO <> '00000000-0000-0000-0000-000000000000';
|
||||
|
||||
|
||||
|
||||
-- 5. lépés: ha még mindíg maradt volna valaki akinek nincs ID-ja
|
||||
UPDATE T_FELHASZNALO_OSSZES
|
||||
SET C_IDPEGYEDIAZONOSITO = NEWID()
|
||||
WHERE C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000'
|
||||
|
||||
|
||||
|
||||
-- GONDVISELŐ esetén
|
||||
-- 1. lépés: alkalmazzuk az egyedi azonosítót, ha még nincs IDP
|
||||
UPDATE T_GONDVISELO_OSSZES
|
||||
SET C_IDPEGYEDIAZONOSITO = C_EGYEDIAZONOSITO
|
||||
WHERE C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000'
|
||||
|
||||
|
||||
|
||||
|
||||
-- 2. lépés: hiányzó azonosítók generálása
|
||||
UPDATE T_GONDVISELO_OSSZES
|
||||
SET C_IDPEGYEDIAZONOSITO = NEWID()
|
||||
WHERE C_IDPEGYEDIAZONOSITO = '00000000-0000-0000-0000-000000000000'
|
||||
|
||||
|
||||
|
||||
-- 3. lépés: biztosítjuk a tanéven belüli egyediséget
|
||||
-- (megj: ez nem teljesen jó módszer, mert így meglévő azonosítókat is elronthatunk)
|
||||
UPDATE akt SET
|
||||
akt.C_IDPEGYEDIAZONOSITO = NEWID()
|
||||
FROM T_GONDVISELO_OSSZES akt
|
||||
INNER JOIN T_TANEV_OSSZES akttv ON akttv.ID = akt.C_TANEVID AND akttv.TOROLT = 'F'
|
||||
INNER JOIN (
|
||||
SELECT C_INTEZMENYID, C_TANEVID, C_IDPEGYEDIAZONOSITO, COUNT(*) C, MAX(ID) MAX_ID
|
||||
FROM T_GONDVISELO_OSSZES
|
||||
GROUP BY C_INTEZMENYID, C_TANEVID, C_IDPEGYEDIAZONOSITO
|
||||
HAVING COUNT(*) > 1
|
||||
) dupl ON akt.C_INTEZMENYID = dupl.C_INTEZMENYID
|
||||
AND akt.C_TANEVID = dupl.C_TANEVID
|
||||
AND akt.C_IDPEGYEDIAZONOSITO = dupl.C_IDPEGYEDIAZONOSITO
|
||||
AND akt.ID <> dupl.MAX_ID
|
||||
WHERE akt.C_IDPEGYEDIAZONOSITO <> '00000000-0000-0000-0000-000000000000';
|
Loading…
Add table
Add a link
Reference in a new issue