Yo empezaría por ponerle un manejador de errores para que, en caso de
producirse algún SQL Code que sea quien lo haga fallar, te devuelva ese
código y saber qué está ocurriendo:
DECLARE SQLCODE INTEGER DEFAULT 0 ;
DECLARE RETCODE INTEGER DEFAULT 0 ;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
SET RETCODE = SQLCODE ;
RETURN RETCODE ;
END ;
Esto lo que hace es capturar cualquier excepción que se produzca y
devolver el SQL Code producido como valor de retorno del procedimiento.
Saludos.
Juan Carlos.
---
https://paredes.info
[email protected]
El 18/09/2018 21:58, Juan Gutierrez Ruiz escribió:
Hola
Para el ejemplo que me envio bernabé (que en linea si me funciona
como son muchos trabajadores con diferentes conceptos
realice un CURSOR
Pero al correrlo no me llena la tabla
mi tabla tiene la clave del trabajador el nombre y 40 campos
numericos
pero no me la llena
la verdad ando empezando hacer mis primeros SP
este es mi SP
alguna observacion
gracias
CREATE PROCEDURE ADAM.ACUM4600 ( )
LANGUAGE SQL
SPECIFIC ADAM.ACUM4600
NOT DETERMINISTIC
MODIFIES SQL DATA
CALLED ON NULL INPUT
SET OPTION ALWBLK = *ALLREAD ,
ALWCPYDTA = *OPTIMIZE ,
COMMIT = *NONE ,
DECRESULT = (31, 31, 00) ,
DFTRDBCOL = *NONE ,
DYNDFTCOL = *NO ,
DYNUSRPRF = *USER ,
SRTSEQ = *HEX
BEGIN ATOMIC
DECLARE @TRACVE CHAR ( 7 ) ;
DECLARE @TRANOM CHAR (40 ) ;
DECLARE @TNOCVE CHAR ( 2 ) ;
DECLARE @CONCOD NUMERIC ( 4 , 0 ) ;
DECLARE @CONDES CHAR ( 40 ) ;
DECLARE @CPRAÑO NUMERIC ( 4 , 0 ) ;
DECLARE @CPRMAC NUMERIC ( 2 , 0 ) ;
DECLARE @CPRPER NUMERIC ( 2 , 0 ) ;
DECLARE @TRNFEC NUMERIC ( 8, 0 ) ;
DECLARE @TRNREF CHAR (10 ) ;
DECLARE @TRNTIE DECIMAL ( 7 , 0 ) ;
DECLARE @TRNIMP NUMERIC ( 15, 2 ) ;
DECLARE SQLCODE INTEGER DEFAULT 0 ;
DECLARE C1 CURSOR FOR
SELECT TRACVE, TRANOM, TNOCVE, CONCOD, CONDES, CPRAÑO,
CPRMAC, CPRPER, TRNFEC, TRNREF, TRNTIE, TRNIMP
FROM ADAM.TACUM4600 ;
OPEN C1 ;
FETCH C1 INTO @TRACVE , @TRANOM , @TNOCVE, @CONCOD,
@CONDES, @CPRAÑO, @CPRMAC, @CPRPER, @TRNFEC, @TRNREF, @TRNTIE,
@TRNIMP ;
WHILE ( SQLCODE = 0 ) DO
INSERT INTO ADAM.TACUMDE (TRACVE, TRANOM,
TRNIMP1)
SELECT DISTINCT TRACVE, TRANOM,
(SELECT TRNIMP FROM adam.tacum4600 B
WHERE
A.tracve = B.tracve
AND B.CONCOD = @CONCOD) AS "Consepto"
FROM adam.tacum4600 A
WHERE TRACVE = @TRACVE ;
FETCH C1 INTO @TRACVE , @TRANOM , @TNOCVE, @CONCOD,
@CONDES, @CPRAÑO, @CPRMAC, @CPRPER, @TRNFEC, @TRNREF, @TRNTIE,
@TRNIMP ;
END WHILE ;
CLOSE C1 ;
END ;
cualquier ayuda se las agradecere
saludos
-------------------------
DE: Juan Gutierrez Ruiz <[email protected]>
ENVIADO: martes, 18 de septiembre de 2018 08:00 a. m.
PARA: Bernabé Estrada; forum.help400
ASUNTO: RE: SQL reporte de linea a columnas
Gracias Bernabe
esto si me funciona !!!
Sin embargo tengo muchos conceptos que varían en cada tipo de
nómina
Esto lo puedo poner en un cursor y el concepto sea sustituido por una
variable
cierto ??
gracias y un saludo
un abrazo !!
-------------------------
DE: [email protected]
<[email protected]> en nombre de Bernabé
Estrada <[email protected]>
ENVIADO: lunes, 17 de septiembre de 2018 04:16 p. m.
PARA: forum. help400
ASUNTO: Re: SQL reporte de linea a columnas
Te sirve algo como esto?
SELECT DISTINCT
EMPLEADO, NOMBRE,
(SELECT IMPORTE FROM DETALLE B WHERE A.EMPLEADO = B.EMPLEADO
AND B.CONCEPTO = '1000') AS SUELDO,
(SELECT IMPORTE FROM DETALLE B WHERE A.EMPLEADO = B.EMPLEADO
AND B.CONCEPTO = '1001') AS PREMIO_ASISTENCIA,
(SELECT IMPORTE FROM DETALLE B WHERE A.EMPLEADO = B.EMPLEADO
AND B.CONCEPTO = '5010') AS DESCUENTO_IMSS
FROM DETALLE A
Saludos
El lun., 17 sept. 2018 a las 13:48, Juan Gutierrez Ruiz
(<[email protected]>) escribió:
hola foro
alguna pista de esto
me pueden echar una mano??
gracias
-------------------------
DE: Juan Gutierrez Ruiz
ENVIADO: jueves, 6 de septiembre de 2018 10:14 a. m.
PARA: forum.help400; [email protected]
ASUNTO: SQL reporte de linea a columnas
Buenos días Foro
Estoy tratando de cambiar una tabla que se genera a través de un
RPG a nivel línea detalle
y la transfiere a excel
EMPLEADO NOMBRE Concepto Descripción Importe
145 JUAN 1000 SUELDO
1500.00
145 JUAN 1001 PREMIO ASISTENCIA
279.50
145 JUAN 5010 DESCUENTO IMSS
51.49
146 TOÑO 1000 SUELDO
1200.00
146 TOÑO 1001 PREMIO ASISTENCIA
279.50
146 TOÑO 5010 DESCUENTO IMSS
51.49
.
.
.
pero el usuario quiero que salga asi
EMPLEADO NOMBRE SUELDO PREMIO ASISTENCIA
DESCUENTOS IMSS
145 JUAN 1500
279.50 51.49
146 TOÑO 1200
279.50 51.49
Estoy haciendo un RPG para genera la tabla , sin embargo quisiera
saber su atraves de un Store Procedure SQL lo pueda transformar la
tabla del as400
mil gracias , espero me puedan dar una pista
saludos
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd
[1] )
Forum.Help400 © Publicaciones Help400, S.L.
Links:
------
[1] http://bit.ly/db68dd
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.