Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Query sin subconsulta

Estas en el tema de Query sin subconsulta en el foro de Mysql en Foros del Web. Saludos amigos, tengo el siguiente query Código: SELECT d.tipo_de_cuenta_nombre, c.usuario_id as Gestor_Asignado, a.niucliente_id as NIU_Cliente, a.cuenta_Referencia as Referencia, c.deudor_nombre_completo as Nombre_Sociedad, a.fecha_ingreso, b.pago_fecha as Fecha_de_Abono, ...
  #1 (permalink)  
Antiguo 07/04/2009, 09:13
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Mensajes: 753
Antigüedad: 12 años, 8 meses
Puntos: 4
Query sin subconsulta

Saludos amigos, tengo el siguiente query

Código:
SELECT d.tipo_de_cuenta_nombre,
c.usuario_id as Gestor_Asignado,
a.niucliente_id as NIU_Cliente,
a.cuenta_Referencia as Referencia,
c.deudor_nombre_completo as Nombre_Sociedad,
a.fecha_ingreso,
b.pago_fecha as Fecha_de_Abono,
b.pago_valor as Abono_Total,
b.promesa_fecha,
b.documento,
ifnull((select max(pg.pago_fecha) from pagos pg where pg.niucliente_id=b.niucliente_id 
and pg.cuenta_referencia=b.cuenta_referencia 
and pg.estado_pago_id=2 group by pg.niucliente_id,pg.cuenta_referencia
),cast('1900-01-01' as date))  as ultimo_pago
FROM pagos b INNER JOIN cuentas a ON (a.niucliente_id=b.niucliente_id AND a.cuenta_referencia=b.cuenta_referencia)
INNER JOIN deudores c ON (a.niucliente_id=c.niucliente_id)
INNER JOIN tipos_de_cuenta d ON (a.tipo_de_cuenta_id=d.tipo_de_cuenta_id)
WHERE b.estado_pago_id=1 AND b.pago_fecha between '2009-04-01' AND '2009-04-30'
GROUP BY d.tipo_de_cuenta_nombre,a.niucliente_id,a.cuenta_referencia,c.deudor_nombre_completo,b.pago_fecha,b.pago_valor,c.usuario_id,
a.fecha_ingreso,b.promesa_fecha
del cual lo que hago es sacar un listado de pagos que tengan como estado del pago el valor de 1 pero en la misma fila debe mostrarme el ultimo pago con estado igual a 2, y es el que he puesto en la subconsulta, mi duda es, habra alguna manera de realizar este query sin la subconsulta?

gracias por los aportes

pd: aclaro que este query si me funciona, pero me gustaria poder hacerlo sin la subconsulta... o quitarme la duda de si se puede o no....
__________________
Visita mi comprador de móviles
  #2 (permalink)  
Antiguo 10/04/2009, 13:37
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Mensajes: 753
Antigüedad: 12 años, 8 meses
Puntos: 4
Respuesta: Query sin subconsulta

nadie
__________________
Visita mi comprador de móviles
  #3 (permalink)  
Antiguo 10/04/2009, 13:45
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 9 años, 9 meses
Puntos: 300
Respuesta: Query sin subconsulta

Has probado con un left join entre ese dato (el de 1) y el que tenga 2 y sea máximo en cuanto a fecha. Buscaría los de uno y los máximos de dos y cruzaría los datos mediante left join, con un ifnull para el dato traído de esa misma tabla en el que el dato fuera 2 y el máximo...

Te digo esto sin saber si ese dato que tenga 2 y sea máximo es siempre el mismo, pues si es siempre el mismo valor, no haría caso de lo que te he dicho antes, y trataría de recuperarlo mediante una segunda consulta y añadirlo en programación.

Dinos algo más sobre los datos con ejemplos concretos.

Última edición por jurena; 11/04/2009 a las 01:54
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:17.