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.