Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 1.51 KB | None | 0 0
  1. CREATE PROCEDURE `fillProducts`()
  2. Begin
  3.  declare i int default 1;
  4.  declare tableSize int;
  5.  declare eachDuration int;
  6.  declare accrSize int;
  7.  declare percent float;
  8.  declare duration int;
  9.  declare actualDur int;
  10.  declare closed int;
  11.  declare d date;
  12.  declare sum decimal;
  13.  declare amount decimal;
  14.  declare k int;
  15.  declare days float default 365.0;
  16.  declare firstAmount int;
  17.  start transaction;
  18.    
  19.  SELECT COUNT(*) into tableSize FROM deposits;
  20.  SELECT COUNT(*) FROM accruals into accrSize;
  21.  
  22.  IF accrSize <1 THEN
  23.   set i = 1;
  24.   while (i <= 7) do
  25.  
  26.        
  27.     set duration = ( SELECT Duration FROM deposits WHERE ID = i);
  28.     set closed = ( SELECT IsClosed  FROM deposits WHERE ID = i);
  29.     set d = (Select OpenDate FROM deposits WHERE ID = i);
  30.     SELECT Amount FROM deposits WHERE ID = i into firstAmount;
  31.    
  32.    
  33.    
  34.     IF closed >0 THEN
  35.         SELECT ActualDuration into actualDur FROM deposits WHERE deposits.ID =i;
  36.         IF actualDur < duration THEN set percent = 3;
  37.         ELSE set percent = 7;
  38.         END IF;
  39.    
  40.     ELSE set actualDur = curdate() - d;
  41.         set percent = 7;
  42.     END IF;
  43.     set amount = firstAmount * 5;# / days;
  44.     set eachDuration = 1;  
  45. insert into accruals values (i, 2, curdate(), firstAmount, 'asdasd');
  46.  
  47.     while( eachDuration <= actualDur) do       
  48.         #insert into accruals
  49.                 #(DepositID, Date, Amount, Description) VALUES ( i, d + eachDuration, amount , "blablabla");
  50.     set eachDuration = eachDuration +1;
  51.     end while;
  52.  
  53.  
  54.  
  55.     set i = i + 1;
  56.   end while;
  57.  END IF;
  58.  
  59.  
  60.  
  61. commit;
  62.  
  63. end$$
  64.  
  65. call fillProducts()$$
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement