Ah, se me ha olvidado comentar que tu tabla original es la que
yo he llamado "empleados". La tabla de empleados desnormalizada la
he llamado "empleados2"
El 07/09/2018 a las 14:14, Potele
escribió:
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.
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
[email protected]
| www.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.
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
[email protected] | www.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.
|