Guest User

Untitled

a guest
Jul 20th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. DELIMITER $$
  2.  
  3. DROP FUNCTION IF EXISTS age_group $$
  4. CREATE FUNCTION age_group(birthdate varchar(10),visit_date varchar(10)) RETURNS VARCHAR(25)
  5. DETERMINISTIC
  6. BEGIN
  7. DECLARE avg VARCHAR(25);
  8. DECLARE mths INT;
  9. DECLARE n INT;
  10.  
  11. set avg="none";
  12. set n = (SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(visit_date)-TO_DAYS(DATE(birthdate))), '%Y')+0);
  13. set mths = (SELECT extract(MONTH FROM DATE(visit_date))-extract(MONTH FROM DATE(birthdate)));
  14.  
  15.  
  16. if n >= 1 AND n < 5 then set avg="1 to < 5";
  17. elseif n >= 5 AND n <= 14 then set avg="5 to 14";
  18. elseif n > 14 AND n < 20 then set avg="> 14 to < 20";
  19. elseif n >= 20 AND n < 30 then set avg="20 to < 30";
  20. elseif n >= 30 AND n < 40 then set avg="30 to < 40";
  21. elseif n >= 40 AND n < 50 then set avg="40 to < 50";
  22. elseif n >= 50 then set avg="50 and above";
  23. end if;
  24.  
  25. if mths >= 0 AND mths < 6 and avg="none" then set avg="< 6 months";
  26. elseif mths >= 6 AND n < 12 and avg="none"then set avg="6 months to < 1 yr";
  27. end if;
  28.  
  29. RETURN avg;
  30. END $$
  31.  
  32. DELIMITER ;
Add Comment
Please, Sign In to add comment