Hola Juan,

Por lo que veo, en la misma tabla se está guardando, además de los nombres de los empleados, varios importes para cada uno de ellos: sueldo, premio asistencia y descuento imss. Es una tabla desnormalizada (¿se usa para BI?) que, en realidad, si se normalizara, se convertiría en 4 tablas normalizadas: empleados, sueldos, premios de asistencia y descuentos imss.

Las potentísimas "common table expressions" de la versión 7.2 (palabra clave "WITH") permiten crear al vuelo tablas intermedias o temporales basadas en sentencias select. Para solucionar tu consulta y SIEMPRE QUE SÓLO SE QUIERA LISTAR LA INFORMACIÓN DE ESOS 3 IMPORTES CON SUS CORRESPONDIENTES CÓDIGOS FIJOS (1000, 1001 y 5010), es posible que te sirva la sentencia select que pongo al final. Esta sentencia crea al vuelo, mediante las 4 "common table expressions", las 4 tablas normalizadas de las que hablaba. La "SELECT DISTINCT" que aparece al final es la que se haría si en lugar de 1 tabla desnormalizada tuvieras 4 tablas normalizadas.

La sentencia es:

with empleados2 (emp2_codemp, emp2_nombre) as (select codigo, nombre from empleados),
     sueldos (sueldo_codemp, sueldo_importe) as (select codigo, importe from empleados where concepto = 1000),
     premios (premios_codemp, premios_importe) as (select codigo, importe from empleados where concepto = 1001),
     descuentos (dtos_codemp, dtos_importe)  as (select codigo, importe from empleados where concepto = 5010)
select distinct emp2_codemp "EMPLEADO", emp2_nombre "NOMBRE", suel.sueldo_importe "SUELDO", prem.premios_importe "PREMIO ASISTENCIA", descu.dtos_importe "DESCUENTOS IMSS"
from empleados2 emp2, sueldos suel, premios prem, descuentos descu
where emp2.emp2_codemp = suel.sueldo_codemp
order by emp2.emp2_codemp ;

Espero que te sirva.

Un saludo,
Potele



El 06/09/2018 a las 17:14, Juan Gutierrez Ruiz 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.



Logotipo Ayuntamiento Vitoria-Gasteiz
José de la Herran Núñez
Kordinazio Teknikoko Burua
Jefe del Área de Coordinación Técnica

Informazioaren Teknologien Saila
Departamento de Tecnologías de la Información

Tel: 945161614 | Fax 945161600
| www.vitoria-gasteiz.org
Logotipo Green Capital

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.

Responder a