mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
		
			854 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			854 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
DROP FUNCTION COMM_AMOUNT;
 | 
						|
CREATE FUNCTION COMM_AMOUNT(SALARY DEC(9,2))
 | 
						|
  RETURNS DEC(9,2)
 | 
						|
  LANGUAGE SQL READS SQL DATA
 | 
						|
  BEGIN ATOMIC
 | 
						|
    DECLARE REMAINDER DEC(9,2) DEFAULT 0.0;--
 | 
						|
    DECLARE COMM_PAID DEC(9,2) DEFAULT 0.0;--
 | 
						|
    DECLARE COMM_INCR INT      DEFAULT 1;--
 | 
						|
    DECLARE MAX_COMM  DEC(9,2) DEFAULT 0.0;--
 | 
						|
 | 
						|
    IF (SALARY <= 0) THEN
 | 
						|
       SIGNAL SQLSTATE '75000'
 | 
						|
         SET MESSAGE_TEXT = 'Bad Salary';--
 | 
						|
    END IF;--
 | 
						|
 | 
						|
    SET REMAINDER = SALARY;--
 | 
						|
 | 
						|
L1: WHILE REMAINDER > 0.0 DO
 | 
						|
      SET COMM_PAID = COMM_PAID + (COMM_INCR * 500.00);--
 | 
						|
      SET REMAINDER = REMAINDER-(COMM_INCR * 5000.00);--
 | 
						|
      SET COMM_INCR = COMM_INCR + 1;--
 | 
						|
    END WHILE L1;--
 | 
						|
 | 
						|
    SET MAX_COMM =
 | 
						|
       (SELECT SUM(SALARY)/100.00 FROM EMPLOYEE);--
 | 
						|
    IF (COMM_PAID > MAX_COMM) THEN
 | 
						|
       SET COMM_PAID = MAX_COMM;--
 | 
						|
    END IF;--
 | 
						|
    RETURN COMM_PAID;--
 | 
						|
END;
 |