[ Foro de SQL (y MySQL) ]

No llego a tomar los valores correctos

18-Jul-2023 16:58
Invitado (Alejo)
0 Respuestas

Buenas gente , espero que se encuentren bien.
Les comento , tengo una tabla con los cambios de credito para los clientes con fecha desde y hasta de cada registro
Necesito una consulta en el cual me deje el valor con fecha mas alto para cada mes.
Estuve utilizando la query

CREATE OR REPLACE TEMP VIEW Universo_limites AS
(
select
u.CustomerCurrentAccountId,
MAX(l.lim) AS limite,
u.PART_MABIFCHCIE_MES
FROM
Universo u
INNER JOIN (
SELECT
codcli,
SUBSTRING(REPLACE(CAST(fecha_desde AS STRING), "-", ""), 1, 6) AS mes,
MAX(fecha_hasta) AS max_fecha_hasta
FROM
cliaudLimT
GROUP BY
codcli,
mes
) m ON u.CustomerCurrentAccountId = m.codcli
INNER JOIN cliaudLimT l ON m.codcli = l.codcli AND m.max_fecha_hasta = l.fecha_hasta
AND u.PART_MABIFCHCIE_MES >= SUBSTRING(REPLACE(CAST(l.fecha_desde AS STRING), "-", ""), 1, 6)
AND u.PART_MABIFCHCIE_MES <= SUBSTRING(REPLACE(CAST(l.fecha_hasta AS STRING), "-", ""), 1, 6)
GROUP BY
u.CustomerCurrentAccountId, u.PART_MABIFCHCIE_MES
ORDER BY
u.PART_MABIFCHCIE_MES);

Tabla cliaudLimT
cliattid,codcli,fecha_desde,fecha_hasta,lim
CLIVALCRD,16824,2008-12-10,2019-12-23,0
CLIVALCRD,16824,2019-12-23,2021-10-20,168000
CLIVALCRD,16824,2021-10-20,2022-08-11,561842
CLIVALCRD,16824,2022-08-11,2023-05-16,174629
CLIVALCRD,16824,2023-05-16,2023-06-16,531144
CLIVALCRD,16824,2023-06-16,2023-07-05,522242


LA respuesta es
CustomerCurrentAccountId,limite,PART_MABIFCHCIE_MES
16824,168000,202101
16824,168000,202102
16824,168000,202103
16824,168000,202104
16824,168000,202105
16824,168000,202106
16824,168000,202107
16824,168000,202108
16824,168000,202109
16824,561842,202110
16824,561842,202111
16824,561842,202112
16824,561842,202201
16824,561842,202202
16824,561842,202203
16824,561842,202204
16824,561842,202205
16824,561842,202206
16824,561842,202207
16824,561842,202208
16824,174629,202209
16824,174629,202210
16824,174629,202211
16824,174629,202212
16824,174629,202301
16824,174629,202302
16824,174629,202303
16824,174629,202304
16824,531144,202305
16824,531144,202306
16824,522242,202307

El problema lo tengo por ejemplo en 202306 que deberia ser 522242 en vez de 531144.
Puedo seguir con SQL o pasar algun script de PYTHON
Agradecería su ayuda




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)