У меня есть 4 SP. get_revenue
, get_hotel_revenue
, get_region_revenue
, get_division_revenue
Как вернуть MySQL прикованную хранимую процедуру вызова?
Так get_revenue
сначала выберет правильные данные для корма в другой 3 SP. Ниже то, что я пытаюсь:
SELECT @hotel_id := hotel.hotel_id, @region_id := region_id, @division_id := division_id FROM campaign
LEFT JOIN hotel ON campaign.hotel_id = hotel.id
WHERE campaign.id = campaign_id;
#This is the part that doesnt return anything.
CALL get_hotel_revenue(@hotel_id);
CALL get_region_revenue(@region_id);
CALL get_division_revenue(@division_id);
Но результат возвращает только 3 переменные. Как я могу получить 3 результата из 3 вложенных SP?
Вот SP для get_division_revenue
, который похож с другим 2.
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_division_revenue`(IN division_id INT(11))
BEGIN
SELECT sum(revenue) FROM data
WHERE data.property_id IN
(
SELECT hotel_id FROM hotel
WHERE hotel.division_id = division_id
);
END;;
DELIMITER ;
@resting, я отредактировал мой ответ, я забыл добавить в конце SQL –
спасибо. Я действительно звонил в SP по отдельности, но ваше решение имеет смысл. Итак, конечный результат должен быть примерно таким: https://paste.ee/p/YP1GW ya? – resting