Casimiro, lo que creo que quiere hacer es un select en el store procedure, para este ejemplo, paso a dar un ejemplo de mis procedimientos de consultas en firebird, espero te ayude en algo.
Código SQL
[-]
SET TERM ^ ;
CREATE PROCEDURE SP_LISTAR_INDICADORES (
FECHA_INICIAL TYPE OF FECHA,
FECHA_FINAL TYPE OF FECHA,
USU_UUID_IN TYPE OF UUID_CHAR )
RETURNS (
FECHA TYPE OF DESCRIPCION,
USUARIO TYPE OF DESCRIPCION,
CENTRO_OPERATIVO TYPE OF DESCRIPCION,
TIPO_USUARIO TYPE OF DESCRIPCION,
MAQUINA TYPE OF DESCRIPCION,
TIPO_MAQUINA TYPE OF DESCRIPCION,
DELGADOS TYPE OF CANTIDAD,
CRUDOS TYPE OF CANTIDAD,
MELAMINA TYPE OF CANTIDAD,
DELGADO TYPE OF CANTIDAD,
RIGIDO TYPE OF CANTIDAD,
COMENTARIO TYPE OF "PASSWORD" )
AS
BEGIN
FOR SELECT
CASE (EXTRACT(MONTH FROM I.IND_FECHA))
WHEN 1 THEN 'ENERO'
WHEN 2 THEN 'FEBRERO'
WHEN 3 THEN 'MARZO'
WHEN 4 THEN 'ABRIL'
WHEN 5 THEN 'MAYO'
WHEN 6 THEN 'JUNIO'
WHEN 7 THEN 'JULIO'
WHEN 8 THEN 'AGOSTO'
WHEN 9 THEN 'SEPTIEMBRE'
WHEN 10 THEN 'OCTUBRE'
WHEN 11 THEN 'NOVIEMBRE'
WHEN 12 THEN 'DICIEMBRE'
END,
U.USU_NOMBRE,
'#'||U.USU_CENTRO_OPERATIVO,
TU.TIPO_USU_NOMBRE,
M.MAQ_NOMBRE,
TM.TIPO_MAQ_NOMBRE,
SUM(COALESCE(I.IND_DELGADOS,0)),
SUM(COALESCE(I.IND_CRUDOS,0)),
SUM(COALESCE(I.IND_LAMINA,0)),
SUM(COALESCE(I.IND_DELGADO,0)),
SUM(COALESCE(I.IND_RIGIDO,0)),
'LOS VALORES SON LA SUMATORIA DE LOS MOVIMIENTOS DEL MES.'
FROM
TBLINDICADORES I
INNER JOIN TBLUSUARIOS U ON I.USU_UUID = U.USU_UUID
INNER JOIN TBLTIPOUSUARIO TU ON U.TIPO_USU = TU.TIPO_USU_UUID
INNER JOIN TBLMAQUINAS M ON I.MAQ_UUID = M.MAQ_UUID
INNER JOIN TBLTIPOMAQUINA TM ON M.TIPO_MAQ_UUID = TM.TIPO_MAQ_UUID
WHERE
I.IND_FECHA BETWEEN :FECHA_INICIAL AND :FECHA_FINAL
AND I.USU_UUID = COALESCE(CHAR_TO_UUID(:USU_UUID_IN), I.USU_UUID)
GROUP BY
EXTRACT(MONTH FROM I.IND_FECHA),
U.USU_NOMBRE, U.USU_CENTRO_OPERATIVO, TU.TIPO_USU_NOMBRE,
M.MAQ_NOMBRE, TM.TIPO_MAQ_NOMBRE
INTO
:FECHA,
:USUARIO,
:CENTRO_OPERATIVO,
:TIPO_USUARIO,
:MAQUINA,
:TIPO_MAQUINA,
ELGADOS,
:CRUDOS,
:MELAMINA,
ELGADO,
:RIGIDO,
:COMENTARIO
DO
BEGIN
SUSPEND;
END
END^
SET TERM ; ^
GRANT EXECUTE
ON PROCEDURE SP_LISTAR_INDICADORES TO SYSDBA;
Los parámetros de entrada son:
FECHA_INICIAL
FECHA_FINAL
USU_UUID_IN
Los que se encuentran dentro de RETURNS (...), son los parámetros de salida, es decir, un select en un sp en Firebird, requiere que las columnas sean entregadas a parámetros de salida.
Saludos.