bcom/sql/checkInGroup.sql

67 lines
1.3 KiB
SQL

DROP FUNCTION IF EXISTS CheckInGroup;
DELIMITER //
CREATE FUNCTION CheckInGroup
(
p_sid INT,
p_gid INT
)
RETURNS INT
READS SQL DATA
BEGIN
SET @outputCode :=(
SELECT
(
CASE
WHEN p_gid = 0 THEN 0
WHEN p_gid = 1 THEN 42
ELSE 100
END
)
);
IF @outputCode = 100 THEN
SET @outputCode :=(
SELECT
(
CASE
WHEN(
SELECT
COUNT(*)
FROM
groupes
WHERE
ID = p_gid
) = 1 THEN 42
ELSE 2012
END
)
);
IF @outputCode = 42 THEN
SET @outputCode :=(
SELECT
(
CASE
WHEN(
SELECT
COUNT(*)
FROM
appartenanceAUnGroupe
INNER JOIN groupes
ON groupes.ID = appartenanceAUnGroupe.groupID
WHERE
groupes.ID = p_gid AND appartenanceAUnGroupe.membreID = p_sid
) >= 1 THEN 42
ELSE 0
END
)
);
END IF;
END IF;
RETURN @outputCode;
END//
DELIMITER ;