Facebook
From kriss, 7 Years ago, written in SQL.
Embed
Download Paste or View Raw
Hits: 319
  1. ALTER FUNCTION "DBA"."liczba_zabiegow"()
  2. RETURNS INTEGER
  3. NOT DETERMINISTIC
  4. BEGIN
  5.         DECLARE @liczbaZabiegow INTEGER;
  6.         DECLARE @typzabiegu CHAR(100);
  7.     DECLARE @idzabiegu INTEGER;
  8.     DECLARE @lbypass INTEGER;
  9.     DECLARE @lwyciec INTEGER;
  10.     DECLARE @zmienna INTEGER;
  11.    
  12.    
  13.    
  14.     DECLARE kursor1 CURSOR FOR  
  15.         SELECT Z.id_zabieg, Z.nazwa_zabieg
  16.             INTO @idzabiegu,@typzabiegu
  17.            FROM ZABIEG Z;
  18.     SET @lbypass=0;
  19.     SET @lwyciec=0;
  20.     SET @zmienna=0;
  21.     SELECT COUNT(Z.id_zabieg) INTO @liczbaZabiegow
  22.         FROM ZABIEG Z;
  23.    
  24. OPEN kursor1;
  25.  
  26. petla: LOOP
  27.     FETCH NEXT kursor1 INTO @idzabiegu,@typzabiegu;
  28.    
  29.     IF @typzabiegu='bypass'
  30.        THEN
  31.     SET @lbypass=@lbypass+1;
  32.     ENDIF;
  33.     IF @typzabiegu='wyciecie'
  34.        THEN
  35.     SET @lwyciec=@lwyciec+1;
  36.     ENDIF;
  37.     SET @zmienna=@zmienna+1;
  38.     IF @zmienna=@liczbaZabiegow
  39.     THEN LEAVE petla;
  40.     ENDIF;
  41. END LOOP;
  42.  
  43. CLOSE kursor1;  
  44.     MESSAGE 'liczba bypassow = ' || @lbypass TO CLIENT;
  45.     MESSAGE 'liczba wyciec = ' || @lwyciec TO CLIENT;
  46.        
  47.         RETURN @liczbaZabiegow;
  48. END