0
私は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つのネストされたSPから3つの結果を得るにはどうすればよいですか?
ここでは他の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