Generar codigos OMR

2018-09-18 Por tema Jose Luis Hernandez Riesgo
Gracias por tus sugerencias Alex.

Me explico un poco. OMR es tipo de marcas en documentos enfocadas a
identificar cada documento/hoja en base a la presencia/ausencia de una
secuencia de marcas.

Por ejemplo si agrupo tres documentos el primero puede tener una secuencia
de raya/blanco/raya, el segundo blanco/raya/raya y el tercero
raya/raya/blanco. Por ejemplo sería algo así:

*|  |  |  *(Impreso en la hoja 1)
*   |  |*   (Impreso en la hoja 2)
*| |*   (Impreso en la hoja 3)

En si mismas estas marcas no significan nada a diferencia de un BARCODE que
es el resultado de "codificar" una serie de caracteres/números a una lista
de barras y que se diferencian por su anchura y separación y que al ser
leídas por un software apropiado "decodifica" la serie de
caracteres/números que incluye el BARCODE.

Estoy haciendo pruebas con la palabra clave de DDS's LINE. Tengo que
ajustar el tamaño de las barras que se pintan, pero parece que es la
solución más simple y nativa. Finalmente el objetivo es que la ensobradora
identifique una secuencia de marcas, no es necesario que signifiquen nada.

De todas formas tus sugerencias me han dado la pista para solucionar otro
proyecto que tengo en camino.

Lo dicho muchas gracias Alex.

--

>
> Message: 1
> Date: Fri, 14 Sep 2018 10:18:54 +0200
> From: Alex Martínez 
> Subject: Re: Generar codigos OMR
> To: "forum.help400" 
> Message-ID:
> <
> caecncbojatbewtnivh24h_h2xqz_mjsjbbfhjbm3ftva5y3...@mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Conozco poco el tema ¿pero te refieres a utilizar los Path Code para
> separar documentos ?
>
> Si es así creo que se puede utilizar en DDS el BARCODE(CODE3OF9)
>
> http://www.alliancegroup.co.uk/patch-codes.htm
> https://www.linkedin.com/pulse/document-separation-technics-rheder-silva/
>
> El jue., 6 sept. 2018 a las 12:49, Jose Luis Hernandez Riesgo (<
> mac1...@gmail.com>) escribió:
>
> > Buenos días a todos
> >
> > No se si alguno habéis trabajado con códigos OMR (Optical Mark
> > Recognition), pero necesito generarlos en una serie de documentos es algo
> > parecido a la generación de códigos de barra.
> >
> > Os cuento un poco mi casuística
> >
> > Los códigos son unas marcas que se imprimen y que en función de la
> > ausencia o presencia de las mismas indica un orden de secuencia de los
> > documentos impresos. En mi caso esto sirve para controlar la secuencia de
> > documentos en una ensobradora. Es un sistema que lee las marcas y como
> > espera una secuencia determinada, garantiza que en cada sobre van los
> > documentos que tienen que ir.
> >
> > Imaginad que quiero ensobrar una factura, una carta de cambio de tarifas
> y
> > una hoja de marketing para cada proveedor. El programa generará los tres
> > documentos y tendrá que imprimir una marca (OMR) diferente para cada
> > documento. Esto se repetirá por cada proveedor.
> >
> > Una vez generadas e impresas el taco de documentos irá ordenado:
> Proveedor
> > 1- DOC1-DOC2-DOC3 ; Proveedor 2- DOC1-DOC2-DOC3; y sucesivos.
> >
> > Se carga en la ensobradora, y esta mediante un software de lectura de OMR
> > detecta la secuencia y garantiza que ensobra una misma secuencia de tres
> > documentos en el mismo sobre.
> >
> > Dicho lo cual, si alguno habéis tenido experiencia generando estos
> códigos
> > y me puede ayudar un poco lo agradecería.
> >
> > Muchas gracias a todos.
>

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

RE: SQL reporte de linea a columnas

2018-09-18 Por tema Juan Gutierrez Ruiz
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 
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: forum.help400-boun...@listas.combios.es 
 en nombre de Bernabé Estrada 

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 
(mailto:juan_gutierrez_r...@hotmail.com>>) 
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; 
forum.help400-requ...@listas.combios.es
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
145JUAN   1000   SUELDO  
1500.00
145JUAN   1001   PREMIO ASISTENCIA  279.50
145JUAN   5010   DESCUENTO IMSS 51.49

146 TOÑO 1000 SUELDO 
1200.00
146 TOÑO  1001PREMIO ASISTENCIA  279.50
 146 TOÑO 5010DESCUENTO IMSS 51.49
 .
 .
 .
pero el usuario quiero que salga asi

EMPLEADO   NOMBRE   SUELDO PREMIO ASISTENCIA  DESCUENTOS  IMSS
145  JUAN  1500   
279.5051.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 

RE: "RE:Inserciones en un fichero grande"

2018-09-18 Por tema Javier Mora
Depende de cómo esté construido pero sobre todo hay que tener en cuenta que 
cada invocación al activador se corresponde con un CALL dinámico a un programa, 
uno de los procesos que afecta más al rendimiento de los trabajos.

De: forum.help400-boun...@listas.combios.es 
[mailto:forum.help400-boun...@listas.combios.es] En nombre de Juan Carlos O.
Enviado el: martes, 18 de septiembre de 2018 16:15
Para: forum.help400
Asunto: "RE:Inserciones en un fichero grande"

Buenas tardes.
Gracias por los comentarios que habéis aportado a este problema. Considero que 
por lo menos os debo un resumen con el final del problema. Todos ellos me han 
hecho pensar en el problema desde otra perspectiva y he/hemos conseguido 
solucionarlo.
El problema estaba en un trigger que tenía el fichero. Os pido perdón porque no 
lo comentarlo en el primer correo, pero desconocía su existencia. He hecho 
varias pruebas y si quito el trigger, el proceso pasa de algo mas de tres horas 
a poco menos de 5 minutos. Incluido lo que el trigger hacia. Es decir, si quito 
el trigger, al proceso original se le añade dos programas mas para hacer lo que 
el trigger hacia, el proceso nuevo tarda unos 5 minutos.
No pensaba que los trigger pudieran afectar tanto en los procesos.

Una vez mas, gracias a todos y nos vemos por el foro.

---Mensaje original---



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

"RE:Inserciones en un fichero grande"

2018-09-18 Por tema Juan Carlos O.


Buenas tardes.



Gracias por los comentarios que habéis aportado a este problema. Considero
que por lo menos os debo un resumen con el final del problema. Todos ellos me
han hecho pensar en el problema desde otra perspectiva y he/hemos conseguido
solucionarlo. 

El problema estaba en un trigger que tenía el fichero. Os pido perdón porque
no lo comentarlo en el primer correo, pero desconocía su existencia. He hecho
varias pruebas y si quito el trigger, el proceso pasa de algo mas de tres horas
a poco menos de 5 minutos. Incluido lo que el trigger hacia. Es decir, si quito
el trigger, al proceso original se le añade dos programas mas para hacer lo que
el trigger hacia, el proceso nuevo tarda unos 5 minutos. 



No pensaba que los trigger pudieran afectar tanto en los procesos.Una vez mas, gracias a todos y nos vemos por el foro.

---Mensaje original---
Ú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.

RE: SQL reporte de linea a columnas

2018-09-18 Por tema Juan Gutierrez Ruiz
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: forum.help400-boun...@listas.combios.es 
 en nombre de Bernabé Estrada 

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 
(mailto:juan_gutierrez_r...@hotmail.com>>) 
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; 
forum.help400-requ...@listas.combios.es
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
145JUAN   1000   SUELDO  
1500.00
145JUAN   1001   PREMIO ASISTENCIA  279.50
145JUAN   5010   DESCUENTO IMSS 51.49

146 TOÑO 1000 SUELDO 
1200.00
146 TOÑO  1001PREMIO ASISTENCIA  279.50
 146 TOÑO 5010DESCUENTO IMSS 51.49
 .
 .
 .
pero el usuario quiero que salga asi

EMPLEADO   NOMBRE   SUELDO PREMIO ASISTENCIA  DESCUENTOS  IMSS
145  JUAN  1500   
279.5051.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.

RE: SQL reporte de linea a columnas

2018-09-18 Por tema Juan Gutierrez Ruiz
Gracia Potele por contestar

Revise y probé tu ejemplo, mas sin embargo tengo la version 6.1 y el WITH no lo 
soporta
he estado buscando algo parecido o semenjante
tendras algo semejante para esta versión ??
mil gracias




De: forum.help400-boun...@listas.combios.es 
 en nombre de Potele 

Enviado: martes, 18 de septiembre de 2018 01:10 a. m.
Para: forum.help400
Asunto: Re: SQL reporte de linea a columnas

Juan,

El día 7 de seeptiembre te respondí ampliamente a esta cuestión. Pego de nuevo 
el mensaje y comentamos lo que necesites:

Mensaje que envié:

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. Tu tabla original es la que yo he llamado "empleados" y la 
tabla de empleados desnormalizada la he llamado "empleados2".

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 17/09/2018 a las 21:45, Juan Gutierrez Ruiz 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; 
forum.help400-requ...@listas.combios.es
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
145JUAN   1000   SUELDO  
1500.00
145JUAN   1001   PREMIO ASISTENCIA  279.50
145JUAN   5010   DESCUENTO IMSS 51.49

146 TOÑO 1000 SUELDO 
1200.00
146 TOÑO  1001PREMIO ASISTENCIA  279.50
 146 TOÑO 5010DESCUENTO IMSS 51.49
 .
 .
 .
pero el usuario quiero que salga asi

EMPLEADO   NOMBRE   SUELDO PREMIO ASISTENCIA  DESCUENTOS  IMSS
145  JUAN  1500   
279.5051.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
Ayuntamiento de Vitoria-Gasteiz Informazioaren Teknologien Saila
Departamento de Tecnologías de la Información
Tel: work945161614 | Fax fax945161600
jher...@vitoria-gasteiz.org | 
www.vitoria-gasteiz.org
[Logotipo Green Capital]

KONFIDENTZIALTASUNA

Komunikazio honen edukia eta honi erantsitako dokumentazio osoarena 
konfidentziala da eta adierazitako jasotzaileari beste 

Re: SQL reporte de linea a columnas

2018-09-18 Por tema José Ignacio Lázaro
Hola Juan.
Si son pocas columnas, puedes usar CASE para cada valor.
Saludos.

El lun., 17 de septiembre de 2018 21:48, Juan Gutierrez Ruiz <
juan_gutierrez_r...@hotmail.com> 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; forum.help400-requ...@listas.combios.es
> *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
> 145JUAN   1000   SUELDO
>   1500.00
> 145JUAN   1001   PREMIO ASISTENCIA  279.50
> 145JUAN   5010   DESCUENTO IMSS
>  51.49
>
> 146 TOÑO 1000 SUELDO
>1200.00
> 146 TOÑO  1001PREMIO ASISTENCIA  279.50
>  146 TOÑO 5010DESCUENTO IMSS
>  51.49
>  .
>  .
>  .
> pero el usuario quiero que salga asi
>
> EMPLEADO   NOMBRE   SUELDO PREMIO ASISTENCIA  DESCUENTOS  IMSS
> 145  JUAN  1500
>  279.5051.49
> 146  TOÑO 1200
>  279.5051.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.

Re: SQL reporte de linea a columnas

2018-09-18 Por tema Potele

  
  
Juan,
  
  El día 7 de seeptiembre te respondí ampliamente a esta cuestión.
  Pego de nuevo el mensaje y comentamos lo que necesites:
  
Mensaje que envié:

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. Tu tabla original es la que yo he
llamado "empleados" y la tabla de empleados desnormalizada la he
llamado "empleados2".
  
  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 17/09/2018 a las 21:45, Juan
  Gutierrez Ruiz 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;
forum.help400-requ...@listas.combios.es
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