145 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
IF OBJECT_ID('stage.sp_MrgTanuloAdatok') IS NOT NULL BEGIN
 | 
						|
  DROP PROCEDURE stage.sp_MrgTanuloAdatok
 | 
						|
END
 | 
						|
GO
 | 
						|
 | 
						|
CREATE PROCEDURE stage.sp_MrgTanuloAdatok
 | 
						|
AS
 | 
						|
BEGIN
 | 
						|
  MERGE stage.T_TANULOADATOK_STAGE AS trg
 | 
						|
    USING (
 | 
						|
      SELECT 
 | 
						|
        i.ID AS C_INTEZMENYID,
 | 
						|
        t.C_NEV AS C_TANEVNEV,
 | 
						|
        f.ID AS C_TANULOID,
 | 
						|
        f.C_NEME AS C_TANULONEME, 
 | 
						|
        f.C_SZULETESIDATUM AS C_TANULOSZULETESIDATUM,
 | 
						|
		f.C_OKTATASIAZONOSITO AS C_OKTATASIAZONOSITO,
 | 
						|
        tn.C_SAJATOSNEVELESU AS C_SAJATOSNEVELESU,
 | 
						|
        tn.C_BTMPROBLEMAS AS C_BTMPROBLEMAS,
 | 
						|
        tn.C_SNILETSZAMSULY AS C_SNILETSZAMSULY,
 | 
						|
        tn.C_BTMLETSZAMSULY AS C_BTMLETSZAMSULY,
 | 
						|
        tn.C_EGYEBDONTO AS C_EGYEBDONTO,
 | 
						|
        tn.C_EVISMETLO  AS C_EVISMETLO,
 | 
						|
        tn.C_MEGALLAPODASOS AS C_MEGALLAPODASOS,
 | 
						|
        tn.C_OSZTV AS C_OSZTV,
 | 
						|
        tn.C_SZETVAGAZAT AS C_SZETVAGAZAT,
 | 
						|
        tn.C_SZINTVIZSGA AS C_SZINTVIZSGA,
 | 
						|
        tn.C_SZKTV AS C_SZKTV,
 | 
						|
        tn.C_TANULOSZERZODESES AS C_TANULOSZERZODESES,
 | 
						|
        tn.C_TECHNIKUSIEVFOLYAM AS C_TECHNIKUSIEVFOLYAM,
 | 
						|
        felh.ID AS C_FELADATELLATASIHELYID,
 | 
						|
        f.C_NYOMTATASINEV AS C_NYOMTATASINEV,
 | 
						|
        f.TOROLT AS TOROLT
 | 
						|
      FROM dbo.T_FELHASZNALO f
 | 
						|
        INNER JOIN dbo.T_TANULO tn ON tn.ID = f.ID
 | 
						|
        INNER JOIN dbo.T_INTEZMENY i ON i.ID = f.C_INTEZMENYID
 | 
						|
        INNER JOIN dbo.T_FELADATELLATASIHELY felh ON felh.C_INTEZMENYID = f.C_INTEZMENYID
 | 
						|
        INNER JOIN dbo.T_TANEV t ON t.ID = f.C_TANEVID
 | 
						|
        INNER JOIN dbo.T_TANULOCSOPORT tcs ON tcs.C_TANULOID = tn.ID
 | 
						|
        INNER JOIN dbo.T_OSZTALY o ON o.ID = tcs.C_OSZTALYCSOPORTID
 | 
						|
        INNER JOIN dbo.T_OSZTALYCSOPORT ocs ON ocs.ID = o.ID
 | 
						|
      WHERE f.TOROLT = 'F' AND i.TOROLT = 'F' AND t.TOROLT = 'F' AND tcs.TOROLT = 'F' AND o.TOROLT = 'F' AND ocs.TOROLT = 'F'
 | 
						|
        AND tcs.C_BELEPESDATUM <= GETDATE() AND (tcs.C_KILEPESDATUM > GETDATE() OR tcs.C_KILEPESDATUM IS NULL)
 | 
						|
    ) src ON (trg.C_INTEZMENYID = src.C_INTEZMENYID AND trg.C_TANULOID = src.C_TANULOID) 
 | 
						|
    WHEN MATCHED AND 
 | 
						|
         (trg.C_TANULONEME <> src.C_TANULONEME OR (trg.C_TANULONEME IS NULL AND src.C_TANULONEME IS NOT NULL) OR (trg.C_TANULONEME IS NOT NULL AND src.C_TANULONEME IS NULL))
 | 
						|
      OR (trg.C_TANULOSZULETESIDATUM <> src.C_TANULOSZULETESIDATUM OR (trg.C_TANULOSZULETESIDATUM IS NULL AND src.C_TANULOSZULETESIDATUM IS NOT NULL) OR (trg.C_TANULOSZULETESIDATUM IS NOT NULL AND src.C_TANULOSZULETESIDATUM IS NULL))    
 | 
						|
      OR (trg.C_SAJATOSNEVELESU <> src.C_SAJATOSNEVELESU OR (trg.C_SAJATOSNEVELESU IS NULL AND src.C_SAJATOSNEVELESU IS NOT NULL) OR (trg.C_SAJATOSNEVELESU IS NOT NULL AND src.C_SAJATOSNEVELESU IS NULL))    
 | 
						|
      OR (trg.C_BTMPROBLEMAS <> src.C_BTMPROBLEMAS OR (trg.C_BTMPROBLEMAS IS NULL AND src.C_BTMPROBLEMAS IS NOT NULL) OR (trg.C_BTMPROBLEMAS IS NOT NULL AND src.C_BTMPROBLEMAS IS NULL))    
 | 
						|
      OR (trg.C_SNILETSZAMSULY <> src.C_SNILETSZAMSULY OR (trg.C_SNILETSZAMSULY IS NULL AND src.C_SNILETSZAMSULY IS NOT NULL) OR (trg.C_SNILETSZAMSULY IS NOT NULL AND src.C_SNILETSZAMSULY IS NULL))    
 | 
						|
      OR (trg.C_BTMLETSZAMSULY <> src.C_BTMLETSZAMSULY OR (trg.C_BTMLETSZAMSULY IS NULL AND src.C_BTMLETSZAMSULY IS NOT NULL) OR (trg.C_BTMLETSZAMSULY IS NOT NULL AND src.C_BTMLETSZAMSULY IS NULL))
 | 
						|
	    OR (trg.C_OKTATASIAZONOSITO <> src.C_OKTATASIAZONOSITO OR (trg.C_OKTATASIAZONOSITO IS NULL AND src.C_OKTATASIAZONOSITO IS NOT NULL) OR (trg.C_OKTATASIAZONOSITO IS NOT NULL AND src.C_OKTATASIAZONOSITO IS NULL))
 | 
						|
      OR (trg.C_EGYEBDONTO <> src.C_EGYEBDONTO OR (trg.C_EGYEBDONTO IS NULL AND src.C_EGYEBDONTO IS NOT NULL) OR (trg.C_EGYEBDONTO IS NOT NULL AND src.C_EGYEBDONTO IS NULL))
 | 
						|
      OR (trg.C_EVISMETLO <> src.C_EVISMETLO OR (trg.C_EVISMETLO IS NULL AND src.C_EVISMETLO IS NOT NULL) OR (trg.C_EVISMETLO IS NOT NULL AND src.C_EVISMETLO IS NULL))
 | 
						|
      OR (trg.C_MEGALLAPODASOS <> src.C_MEGALLAPODASOS OR (trg.C_MEGALLAPODASOS IS NULL AND src.C_MEGALLAPODASOS IS NOT NULL) OR (trg.C_MEGALLAPODASOS IS NOT NULL AND src.C_MEGALLAPODASOS IS NULL))
 | 
						|
      OR (trg.C_OSZTV <> src.C_OSZTV OR (trg.C_OSZTV IS NULL AND src.C_OSZTV IS NOT NULL) OR (trg.C_OSZTV IS NOT NULL AND src.C_OSZTV IS NULL))
 | 
						|
      OR (trg.C_SZETVAGAZAT <> src.C_SZETVAGAZAT OR (trg.C_SZETVAGAZAT IS NULL AND src.C_SZETVAGAZAT IS NOT NULL) OR (trg.C_SZETVAGAZAT IS NOT NULL AND src.C_SZETVAGAZAT IS NULL))
 | 
						|
      OR (trg.C_SZINTVIZSGA <> src.C_SZINTVIZSGA OR (trg.C_SZINTVIZSGA IS NULL AND src.C_SZINTVIZSGA IS NOT NULL) OR (trg.C_SZINTVIZSGA IS NOT NULL AND src.C_SZINTVIZSGA IS NULL))
 | 
						|
      OR (trg.C_SZKTV <> src.C_SZKTV OR (trg.C_SZKTV IS NULL AND src.C_SZKTV IS NOT NULL) OR (trg.C_SZKTV IS NOT NULL AND src.C_SZKTV IS NULL))
 | 
						|
      OR (trg.C_TANULOSZERZODESES <> src.C_TANULOSZERZODESES OR (trg.C_TANULOSZERZODESES IS NULL AND src.C_TANULOSZERZODESES IS NOT NULL) OR (trg.C_TANULOSZERZODESES IS NOT NULL AND src.C_TANULOSZERZODESES IS NULL))
 | 
						|
      OR (trg.C_TECHNIKUSIEVFOLYAM <> src.C_TECHNIKUSIEVFOLYAM OR (trg.C_TECHNIKUSIEVFOLYAM IS NULL AND src.C_TECHNIKUSIEVFOLYAM IS NOT NULL) OR (trg.C_TECHNIKUSIEVFOLYAM IS NOT NULL AND src.C_TECHNIKUSIEVFOLYAM IS NULL))
 | 
						|
      OR (trg.C_FELADATELLATASIHELYID <> src.C_FELADATELLATASIHELYID OR (trg.C_FELADATELLATASIHELYID IS NULL AND src.C_FELADATELLATASIHELYID IS NOT NULL) OR (trg.C_FELADATELLATASIHELYID IS NOT NULL AND src.C_FELADATELLATASIHELYID IS NULL))
 | 
						|
      OR (trg.C_NYOMTATASINEV <> src.C_NYOMTATASINEV OR (trg.C_NYOMTATASINEV IS NULL AND src.C_NYOMTATASINEV IS NOT NULL) OR (trg.C_NYOMTATASINEV IS NOT NULL AND src.C_NYOMTATASINEV IS NULL))
 | 
						|
    THEN
 | 
						|
      UPDATE SET
 | 
						|
         trg.C_TANULONEME = src.C_TANULONEME
 | 
						|
        ,trg.C_TANULOSZULETESIDATUM = src.C_TANULOSZULETESIDATUM
 | 
						|
        ,trg.C_SAJATOSNEVELESU = src.C_SAJATOSNEVELESU
 | 
						|
        ,trg.C_BTMPROBLEMAS = src.C_BTMPROBLEMAS
 | 
						|
        ,trg.C_SNILETSZAMSULY = src.C_SNILETSZAMSULY
 | 
						|
        ,trg.C_BTMLETSZAMSULY = src.C_BTMLETSZAMSULY
 | 
						|
		    ,trg.C_OKTATASIAZONOSITO = src.C_OKTATASIAZONOSITO
 | 
						|
 | 
						|
        ,trg.C_EGYEBDONTO = src.C_EGYEBDONTO
 | 
						|
        ,trg.C_EVISMETLO = src.C_EVISMETLO
 | 
						|
        ,trg.C_MEGALLAPODASOS = src.C_MEGALLAPODASOS
 | 
						|
        ,trg.C_OSZTV = src.C_OSZTV
 | 
						|
        ,trg.C_SZETVAGAZAT = src.C_SZETVAGAZAT
 | 
						|
        ,trg.C_SZINTVIZSGA = src.C_SZINTVIZSGA
 | 
						|
        ,trg.C_SZKTV = src.C_SZKTV
 | 
						|
        ,trg.C_TANULOSZERZODESES = src.C_TANULOSZERZODESES
 | 
						|
        ,trg.C_TECHNIKUSIEVFOLYAM = src.C_TECHNIKUSIEVFOLYAM
 | 
						|
        ,trg.C_FELADATELLATASIHELYID = src.C_FELADATELLATASIHELYID
 | 
						|
        ,trg.C_NYOMTATASINEV = src.C_NYOMTATASINEV
 | 
						|
        ,trg.LASTCHANGED = GETDATE()
 | 
						|
    WHEN NOT MATCHED BY TARGET THEN
 | 
						|
      INSERT (
 | 
						|
         C_INTEZMENYID
 | 
						|
        ,C_TANEVNEV
 | 
						|
        ,C_TANULOID
 | 
						|
        ,C_TANULONEME
 | 
						|
        ,C_TANULOSZULETESIDATUM
 | 
						|
        ,C_SAJATOSNEVELESU
 | 
						|
        ,C_BTMPROBLEMAS
 | 
						|
        ,C_SNILETSZAMSULY
 | 
						|
        ,C_BTMLETSZAMSULY
 | 
						|
		    ,C_OKTATASIAZONOSITO
 | 
						|
        ,C_EGYEBDONTO
 | 
						|
        ,C_EVISMETLO
 | 
						|
        ,C_MEGALLAPODASOS
 | 
						|
        ,C_OSZTV
 | 
						|
        ,C_SZETVAGAZAT
 | 
						|
        ,C_SZINTVIZSGA
 | 
						|
        ,C_SZKTV
 | 
						|
        ,C_TANULOSZERZODESES
 | 
						|
        ,C_TECHNIKUSIEVFOLYAM
 | 
						|
        ,C_FELADATELLATASIHELYID
 | 
						|
        ,C_NYOMTATASINEV
 | 
						|
        ,TOROLT
 | 
						|
        ,LASTCHANGED
 | 
						|
        ,CREATED
 | 
						|
      ) VALUES (
 | 
						|
         src.C_INTEZMENYID
 | 
						|
        ,src.C_TANEVNEV
 | 
						|
        ,src.C_TANULOID
 | 
						|
        ,src.C_TANULONEME
 | 
						|
        ,src.C_TANULOSZULETESIDATUM
 | 
						|
        ,src.C_SAJATOSNEVELESU
 | 
						|
        ,src.C_BTMPROBLEMAS
 | 
						|
        ,src.C_SNILETSZAMSULY
 | 
						|
        ,src.C_BTMLETSZAMSULY
 | 
						|
		    ,src.C_OKTATASIAZONOSITO
 | 
						|
        ,src.C_EGYEBDONTO
 | 
						|
        ,src.C_EVISMETLO
 | 
						|
        ,src.C_MEGALLAPODASOS
 | 
						|
        ,src.C_OSZTV
 | 
						|
        ,src.C_SZETVAGAZAT
 | 
						|
        ,src.C_SZINTVIZSGA
 | 
						|
        ,src.C_SZKTV
 | 
						|
        ,src.C_TANULOSZERZODESES
 | 
						|
        ,src.C_TECHNIKUSIEVFOLYAM
 | 
						|
        ,src.C_FELADATELLATASIHELYID
 | 
						|
        ,src.C_NYOMTATASINEV
 | 
						|
        ,'F'
 | 
						|
        ,GETDATE()
 | 
						|
        ,GETDATE()
 | 
						|
      )
 | 
						|
    WHEN NOT MATCHED BY SOURCE AND trg.TOROLT = 'F' THEN
 | 
						|
      UPDATE SET 
 | 
						|
        trg.LASTCHANGED = GETDATE(), 
 | 
						|
        trg.TOROLT = 'T'
 | 
						|
  ;
 | 
						|
END
 | 
						|
GO
 |