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.

Responder a