Muchas gracias foro
todas las soluciones son perfectas
mi unico problema es que el concepto varía por cada empleado este viene en la 
tabla de acumulados

y como leo el  nombre del conceptos , este lo tengo en otra tabla de CONCE


realice un SP pero no me corre

si corro desde el SQL interactivo el INSERT solo me inserta el primer gegistro 
en la tabla TACUMDE
pero ya en el procedimiento compilado , me corre pero no hace nada
espero me puedan echar un hilo





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 = *CHG ,
CLOSQLCSR = *ENDMOD ,
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  ;



muchisimas Gracias Foro por el apoyo brindado
saludos



________________________________
De: forum.help400-boun...@listas.combios.es 
<forum.help400-boun...@listas.combios.es> en nombre de Alex Martínez 
<ajut...@gmail.com>
Enviado: jueves, 20 de septiembre de 2018 06:18 a. m.
Para: forum.help400
Asunto: Re: SQL reporte de linea a columnas

Cierto, creo que se puede solucionar añadiendo un SUM a cada columna y un GROUP 
BY .... ;-)

SELECT  EMPLEADO, NOMBRE,
 IFNULL(SUM(CASE WHEN CONCEPTO = '1000' THEN IMPORTE END), 0) AS SUELDO,
 IFNULL(SUM(CASE WHEN CONCEPTO = '1001' THEN IMPORTE END), 0) AS PREMIO,
 IFNULL(SUM(CASE WHEN CONCEPTO = '5010' THEN IMPORTE END), 0) AS DESCUENTO
FROM TABLA
GROUP BY EMPLEADO, NOMBRE

El jue., 20 sept. 2018 a las 12:46, Potele 
(<jher...@vitoria-gasteiz.org<mailto:jher...@vitoria-gasteiz.org>>) escribió:
Hola Álex,

tu Alex es CASI la correcta, porque (aparte de añadir los paréntesis que faltan 
en los "IFNULL") el resultado que arroja es:

CODIGO NOMBRE      SUELDO PREMIO DESCUENTO
------ ----------- ------ ------ ---------
145    JUAN          1500      0         0
145    JUAN             0    280         0
145    JUAN             0      0        52
146    TOÑO          1200      0         0
146    TOÑO             0    280         0
146    TOÑO             0      0        52

(los importes están redondeados para simplificar la información a mostrar)

Me gusta más la solución de Bernabé Estada, usando sub-selects, o la mía, 
usando global temporary tables.

Un saludo,
Potele



El 20/09/2018 a las 10:53, Alex Martínez escribió:
Contesto tarde pero creo que lo puedes solucionar utilizando varios CASE / THEN
añado un IFNULL a cada columna para que en caso de no existir un concepto 
obtener el valor 0

 SELECT  EMPLEADO, NOMBRE,
 IFNULL(CASE WHEN CONCEPTO = '1000' THEN IMPORTE END), 0) AS SUELDO,
 IFNULL(CASE WHEN CONCEPTO = '1001' THEN IMPORTE END), 0) AS PREMIO,
 IFNULL(CASE WHEN CONCEPTO = '5010' THEN IMPORTE END), 0) AS DESCUENTO
FROM TABLA

El jue., 6 sept. 2018 a las 17:18, Juan Gutierrez Ruiz 
(<juan_gutierrez_r...@hotmail.com<mailto:juan_gutierrez_r...@hotmail.com>>) 
escribió:
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 )
Forum.Help400 © Publicaciones Help400, S.L.



____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.


[Logotipo Ayuntamiento Vitoria-Gasteiz]<http://www.vitoria-gasteiz.org>
José de la Herran Núñez
Kordinazio Teknikoko Burua
Jefe del Área de Coordinación Técnica
Ayuntamiento de Vitoria-Gasteiz Informazioaren Teknologien Saila
Departamento de Tecnologías de la Información
Tel: work945161614 | Fax fax945161600
jher...@vitoria-gasteiz.org<mailto:jher...@vitoria-gasteiz.org> | 
www.vitoria-gasteiz.org<http://www.vitoria-gasteiz.org>
[Logotipo Green Capital]<http://greencapital.vitoria-gasteiz.org>
________________________________
KONFIDENTZIALTASUNA

Komunikazio honen edukia eta honi erantsitako dokumentazio osoarena 
konfidentziala da eta adierazitako jasotzaileari beste inori ez dagokio.
Zeu jasotzaile ez bazina, jakinaraz iezaguzu, mesedez, eta eskatu nahi dizugu 
edukiaren berri inori ez esan eta mezua ezaba dezazula.

CONFIDENCIALIDAD

El contenido de esta comunicación, así como el de toda la documentación anexa, 
es confidencial y va dirigido únicamente al destinatario del mismo.
En el supuesto de que usted no fuera el destinatario, le solicitamos que nos lo 
indique y no comunique su contenido a terceros, procediendo a su destrucción.

CONFIDENCIALITY

The content of this communication and any attached information is confidential 
and exclusively for the use of the addressee.
If you are not the addressee, we ask you to notify to the sender and do not 
pass its content to another person, and please be sure you destroy it.

____________________________________________________
Ú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