Comparar mismo campo de dos registros distintos

Todo lo relacionado a DB2 y otras bases de datos bajo z/OS o VSE o z/VM
Responder
Alpuce
Usuario
Usuario
Mensajes: 1
Registrado: 14 Sep 2018, 09:10
País: España
Ciudad: huesca
Ocupación: Programador

Comparar mismo campo de dos registros distintos

Mensaje por Alpuce » 14 Sep 2018, 09:49

Hola, necesito realizar una query en db2/host que compare el valor de un campo de la tabla con el valor del mismo campo de la tabla en otro registro.

Si la tabla es algo así:
Contrato| Oper| Importe
00002158| A234| -10.00
00002158| A217| 120.00
00002158| A173| 100.00

Busco encontrar aquellos registros donde, para el mismo contrato, el importe de la operación A217 es mayor que el importe de la operación A173.

Gracias y un saludo

f_caballero
Usuario avanzado
Usuario avanzado
Mensajes: 58
Registrado: 25 Sep 2007, 16:36
País: España
Ciudad: Madrid
Ocupación: Analista de desarrollo

Re: Comparar mismo campo de dos registros distintos

Mensaje por f_caballero » 23 Sep 2018, 07:32

Hola, puedes probar este join.
Según las especificaciones que proporcionas.
Es probable que haya otros formatos de query "más modernos" y de mejor rendimiento, pero básicamente sería esto.

SELECT A.CONTRATO, A.OPER, A,IMPORTE, B,OPER, B.IMPORTE
FROM TABLA A, TABLA B
WHERE A.OPER = 'A217'
AND B.CONTRATO = A.CONTRATO
AND B.OPER = 'A173'
AND B.IMPORTE < A.IMPORTE

Suerte
Salud y fortuna.
Fernando Caballero

Responder