Facebook
From kriss, 7 Years ago, written in SQL.
Embed
Download Paste or View Raw
Hits: 241
  1. ALTER PROCEDURE "DBA"."nieobecnosc_lekarza" (@idLekarza INT,@funkcja VARCHAR(50), @nb DATE)
  2. AS
  3. BEGIN
  4.     DECLARE @zmiennik INT
  5.         DECLARE @datazabieg DATE
  6.     DECLARE @idz INT
  7.     DECLARE @zmienna INT
  8.     DECLARE kursor CURSOR FOR
  9.         SELECT Z.data_zabieg, Z.id_zabieg INTO @datazabieg,@idz
  10.            FROM ZABIEG Z  JOIN zespol_zabiegowy zes ON ( Z.id_zabieg=zes.id_zabieg)
  11.           WHERE zes.id_pracownik=@idLekarza AND Z.data_zabieg=@nb
  12.    
  13.    
  14.       /* wybieramy zmiennika */
  15.        SET @zmiennik = (SELECT TOP 1 P.id_pracownik
  16.                         FROM PRACOWNIK P
  17.                         WHERE id_pracownik <> @idLekarza AND P.funkcja_szpital= @funkcja
  18.                         ORDER BY P.id_pracownik)
  19.    
  20.    
  21.   OPEN kursor WITH HOLD
  22.     WHILE @@FETCH_STATUS= 0
  23.    
  24.         BEGIN
  25.        
  26.              FETCH NEXT kursor INTO @datazabieg,@idz
  27.              
  28.             BEGIN TRANSACTION
  29.                
  30.                 UPDATE zespol_zabiegowy
  31.                 SET id_pracownik=@zmiennik  
  32.                 WHERE id_pracownik=@idLekarza AND id_zabieg=@idz
  33.            
  34.             COMMIT TRANSACTION
  35.              
  36.         END
  37.     CLOSE kursor
  38.    
  39. END