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;
 |