J'essaye de créer une procédure stockée qui exécuterait la sélection montrée comme la ligne avant la fin. Il faudrait le plus tôt StartDate et le dernier EndDate de mon utilisable et sélectionner tous les jours entre les dates de ma table de calendrier de référence. Malheureusement, quelle que soit la syntaxe que j'essaierai d'utiliser, j'obtiendrai toujours un message d'erreur sur l'affectation des valeurs des sélections utilisables aux variables start/endday. Je n'ai pas trouvé beaucoup de ressources spécifiant la syntaxe correcte des exemples que j'ai vus j'ai essayé ce qui suit.mysql - initialise la variable locale (dans la procédure stockée) à partir d'un résultat de requête
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 ;
J'ai essayé aussi d'attribuer des valeurs thusly
SELECT MIN(StartDate) from user1table1 INTO endday;
En vain. Je pourrais être en mesure de faire fonctionner la procédure sans stocker ces variables - mais c'est quelque chose que je devrai tôt ou tard utiliser de toute façon. Alors, comment remplir correctement les variables locales avec les résultats de la requête dans Mysql?
Pourquoi pas simple 'SELECT calendar_date votre agenda c, (SELECT MIN (StartDate) MinDate, MAX (StartDate) MaxDate de user1table1) u où c.calendar_date> = u.mindate et c.calendar_date <= u .maxdate) '? Pourquoi une procédure au lieu d'un simple sélectionner? –
Déclare variable devrait être sur le dessus –
Merci Ankit Agrawal c'était une chose si simple que j'ai raté –