buenas esperon puedan ayudarme ya que soy nueva con tablas temporales, hice un procedimiento almacenado con tablas temporales, que al ejecutar mi procedimiento me sale el error de que la tabla temporal no existe: Invalid object name '#beneficios'.
mi procedimiento almacenado es buscar el ultimo beneficio que una persona ( en este caso grupo) se le haya otorgado y esos guardar en la tabla temporal para luego seleccion de ahi el resultado.
les dejo mi procedimiento para que puedan guiarme y decirme en que estoy fallando
Código SQL:
Ver originalDECLARE
@nro_cedide VARCHAR(20),@max_comprobante INT;
BEGIN
--SET NOCOUNT ON;
DECLARE crsr_cedula cursor FOR
SELECT so.nro_cedide
FROM cij.JM_SOLICITUD so, cij.JM_CONFORMACION fo, cij.JM_INFORME_FINAL i, cij.jm_resultado re, cij.JM_BENEFICIO be
WHERE so.id_solicitud= fo.id_solicitud
AND fo.id_conformacion= i.id_conformacion
AND i.id_informe= re.id_informe
AND re.id_beneficio= be.id_beneficio
AND i.estado='FIN'
AND re.id_beneficio IN (4,5,6,8,9)
IF @@error != 0
BEGIN
raiserror 99999 'ERROR las cedulas de las personas con informes finalizados'
END;
--ABRIMOS CURSOR
OPEN crsr_cedula;
IF @@error != 0
BEGIN
raiserror 99999 'ERROR al abrir el cursor pp'
END
--RECORREMOS EL CURSOR
fetch NEXT FROM crsr_cedula INTO @nro_cedide
IF @@fetch_status = -1
BEGIN
raiserror 99999 ' Error al recorrer cursor[inicio]'
END;
while @@fetch_status = 0
BEGIN
--recuperamos el ultimo comprobante afectado de la persona
SELECT @max_comprobante = MAX(comprobante_pago)
FROM cij.BENEFICIARIOS x, cij.BENEFICIARIOS_GRUPOS y, cij.COMPROBANTES_PAGOS z
WHERE x.beneficiario = y.beneficiario
AND y.beneficiario_grupo = z.beneficiario_grupo
AND z.indicador_estado = 'VAL'
AND x.cedula = @nro_cedide
IF @@error != 0
BEGIN
raiserror 99999 'Error al recuperar el maximo comprobante de la persona'
END;
IF @max_comprobante IS NOT NULL
BEGIN
CREATE TABLE #beneficios(cedula VARCHAR(20),nombre VARCHAR(70),fec_nac datetime,fec_ini datetime,fec_fin datetime,descripcion VARCHAR(70),resolucion VARCHAR(20))
INSERT INTO #beneficios
SELECT a.cedula, a.nombre_completo, a.fecha_nacimiento, d.fecha_inicio, d.fecha_fin, e.descripcion concepto_asignacion,d.numero_resolucion
FROM cij.BENEFICIARIOS a, cij.BENEFICIARIOS_GRUPOS b, cij.COMPROBANTES_PAGOS c, cij.COMPROBANTES_PAGOS_DETALLE d, cij.CONCEPTOS_ASIGNACIONES e
WHERE a.beneficiario = b.beneficiario
AND b.beneficiario_grupo = c.beneficiario_grupo
AND c.comprobante_pago = d.comprobante_pago
AND d.concepto_asignacion = e.concepto_asignacion
AND d.indicador_tipo = 'CRE'
AND c.comprobante_pago = @max_comprobante
IF @@error != 0
BEGIN
raiserror 99999 'Error al insertar en la tabla temporal'
END;
END;
fetch NEXT FROM crsr_cedula INTO @nro_cedide
END
--CERRAMOS EL CURSOR
close crsr_cedula
deallocate crsr_cedula
SELECT cedula,nombre,fec_nac,fec_ini,fec_fin,descripcion,resolucion FROM #beneficios;
END
gracias