MySQL - Predimiento almacenado anidado

 
Vista:
sin imagen de perfil

Predimiento almacenado anidado

Publicado por Andrés (2 intervenciones) el 02/12/2021 06:55:26
Buenas a todos. Espero me puedan ayudar con la sgte, consulta. Como puedo hacer un procedimiento almacenado con un ejemplo muy simple.

tengo una consultas en una tabla de reservas que me obtiene una columna de fechas


SELECT res_fecha FROM reservas MONTH(res_fecha)=11 AND YEAR(res_fecha)='2021'

y con la ayuda de esta consulta quiero recorrer con un buble cada fila y que me ayude a ejecutar otra consulta que me arrojara unas 3 filas por ejemplo seria


SELECT * FROM pasajeros WHERE pas_fecha_registro = variable_fecha_primer_query


el resultado seria algo como:

FECHA PASAJERO | NOMBRE
2021-11-01 | JUAN
2021-11-01 | PEDRO
2021-11-01 | LUIS
2021-11-02 | MARIA
2021-11-02 | JUANA
2021-11-02 | MALENA


Esto en php y mysql no tengo problemas, Este ejemplo es básico, pero el que tengo que hacer es mas complejo, tiene uniones y joins, Por la complejidad es que tengo que hacerlo en un SP. La idea con este ejemplo me ayudaría a plantearlo en mi ejemplo real.

Cual seria el sql para eset ejemplo básico. Es una primera consulta que me devuelve una fecha y esa fecha meterlo en un parámetro que me ayude a listar otro query que seria el resultado.


Gracias de antemano con su apoyo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Predimiento almacenado anidado

Publicado por teayudo (2 intervenciones) el 15/12/2021 00:54:10
Pues Andrés, si el primer query que extrae el res_fecha de reservas devuelve un solo un registro, está listo porque disparas el otro query con esa variable donde almacenes la fecha que captura el primer query, y debería funcionar.

El pero es que si depronto el primer query te llegase a devolver varias fechas, ahí la cosa se complica porque tendrías que ir ejecutando un loop doble uno que vaya capturando las fechas y por cada una ir ejecutando el segundo query.

De capturar solo una fecha el primer query, el siguiente código te debería funcionar:

CREATE PROCEDURE SPR_R_PROCESARFECHAS(
IN p_FECHA DATE)

BEGIN
DECLARE v_Fecha DATE Default '0000-00-00';

SELECT res_fecha into v_Fecha FROM reservas MONTH(res_fecha)=11 AND YEAR(res_fecha)='2021';

IF (v_Fecha <> '0000-00-00') THEN
SELECT * FROM pasajeros WHERE pas_fecha_registro = v_Fecha;
END IF;

END;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Predimiento almacenado anidado

Publicado por teayudo (2 intervenciones) el 15/12/2021 00:57:01
Sobra decir que p_FECHA es el parámetro que ingresará el usuario y te toca quebrarla para extraer el mes y el año
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Predimiento almacenado anidado

Publicado por Andrés Sosa (2 intervenciones) el 15/12/2021 22:52:01
gracias estimado por tu valioso aporte, probaré como me va, cualquier consulta lo estaré escribiendo por este medio. Saludos desde Trujillo, Perú.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar