最後までの行として示された選択を実行するストアドプロシージャを作成しようとしています。私のusertableから最も早いStartDateと最新のEndDateを取得し、その日付の間のすべての日を参照カレンダーテーブルから選択します。残念ながら、私が使用しようとするどの構文でも、usertableの値をstart/endday変数に代入するとエラーメッセージが表示されます。私は、私が以下に試した例から正しい構文を指定する多くのリソースを見つけられませんでした。mysql - クエリ結果から(ストアドプロシージャ内の)ローカル変数を初期化する
DELIMITER $$
CREATE PROCEDURE seldays()
BEGIN
DECLARE startday DATE;
SET startday = (SELECT MIN(StartDate) from user1table1);
DECLARE endday DATE;
SET endday = (SELECT MAX(EndDate) from user1table1);
SELECT calendar_date FROM calendar WHERE calendar_date >= startday AND calendar_date< endday;
END $$
DELIMITER ;
Iはまた、無駄にthusly
SELECT MIN(StartDate) from user1table1 INTO endday;
値を割り当てることを試みました。私はこれらの変数を保存せずにプロシージャを動作させることができるかもしれませんが、それは私が遅かれ早かれ使用する必要があるものです。 ローカル変数をMysqlのクエリ結果に正しく埋め込むにはどうしたらいいですか? MySQLでは
なぜ単純な 'カレンダーCからSELECT calendar_date、(MIN(開始日)MinDateプロパティを選択して、MAX(開始日)に、maxdateからuser1table1)Uここc.calendar_date> = u.mindateとc.calendar_date <= U .maxdate) '?単純な選択ではなく、なぜプロシージャですか? –
変数を宣言する必要があります。 –
Ankit Agrawalありがとうございました。私が逃したような簡単なことでした。 –