Skip to content

Instantly share code, notes, and snippets.

@ahmednasir91
Created January 11, 2014 12:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ahmednasir91/8370440 to your computer and use it in GitHub Desktop.
Save ahmednasir91/8370440 to your computer and use it in GitHub Desktop.
DROP FUNCTION IF EXISTS GetMovingToAddress;
DELIMITER //
CREATE FUNCTION GetMovingToAddress(request_id INT) RETURNS INT DETERMINISTIC
BEGIN
DECLARE address_id INT;
DECLARE moveRequestId INT;
DECLARE carMoveRequestId INT;
DECLARE storageRequestId INT;
SELECT move_request_id INTO moveRequestId FROM request WHERE id = request_id;
SELECT car_move_request_id INTO carMoveRequestId FROM request WHERE id = request_id;
SELECT storage_request_id INTO storageRequestId FROM request WHERE id = request_id;
CASE
WHEN moveRequestId IS NOT NULL
THEN
SELECT move_request.moving_to_address INTO address_id FROM move_request WHERE id = moveRequestId;
WHEN carMoveRequestId IS NOT NULL
THEN
SELECT car_move_request.move_to_address INTO address_id FROM car_move_request WHERE id = carMoveRequestId;
WHEN storageRequestId IS NOT NULL
THEN
SELECT storage_request.storage_location_id INTO address_id FROM storage_request WHERE id = storageRequestId;
END CASE;
RETURN address_id;
END //
DELIMITER ;
DROP FUNCTION IF EXISTS GetMovingFromAddress;
DELIMITER //
CREATE FUNCTION GetMovingFromAddress(request_id INT) RETURNS INT DETERMINISTIC
BEGIN
DECLARE address_id INT;
DECLARE moveRequestId INT;
DECLARE carMoveRequestId INT;
DECLARE storageRequestId INT;
SELECT move_request_id INTO moveRequestId FROM request WHERE id = request_id;
SELECT car_move_request_id INTO carMoveRequestId FROM request WHERE id = request_id;
SELECT storage_request_id INTO storageRequestId FROM request WHERE id = request_id;
CASE
WHEN moveRequestId IS NOT NULL
THEN
SELECT move_request.moving_from_address INTO address_id FROM move_request WHERE id = moveRequestId;
WHEN carMoveRequestId IS NOT NULL
THEN
SELECT car_move_request.move_from_address INTO address_id FROM car_move_request WHERE id = carMoveRequestId;
WHEN storageRequestId IS NOT NULL
THEN
SET address_id = NULL;
END CASE;
RETURN address_id;
END //
DELIMITER ;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment