Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/04/2010, 16:12
lestatAb
 
Fecha de Ingreso: febrero-2010
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta cantidad más pequeña...

Hola q tal, pues aqi ando buscando hacer una consulta que me devuelva la cantidad más peqeña...
Tengo una lista de 'crédito', donde se almacenan todos los abonos que va haciendo hasta dejar el saldo en cero, ahora bien, necesito mostrar de entrada sólo el registro con la cantidad de saldo más peqeña... mis pruebas las he hecho con MIN, i en algunos casos no me funciona... por ejemplo:

Código:
SELECT     estado, id_paciente, id_detalle_venta, saldo
FROM         creditos
WHERE      (id_cliente = 2) AND (creditos.estado LIKE N'%adeuda%')
order by id_detalle_venta

SELECT     estado, id_paciente, id_detalle_venta, MIN(saldo) AS Expr1
FROM         creditos
WHERE     (id_cliente = 2) AND (creditos.estado LIKE N'%adeuda%')
GROUP BY estado, id_paciente, id_detalle_venta
order by id_detalle_venta
Genera:
estado idpaciente venta saldo
adeuda - 8 - 264 - 55.50
adeuda - 8 - 264 - 35.50

estado idpaciente venta saldo
adeuda - 8 - 264 - 35.50

Pero al qerer recuperar con toda la info que requiero:

Código:
SELECT DISTINCT 
                      datos_personales_paciente.nombre + ' ' + datos_personales_paciente.ap_paterno + ' ' + datos_personales_paciente.ap_materno AS Nombre, 
                      datos_personales_paciente.sexo AS Sexo, datos_personales_paciente.fecha_nac AS [Fecha de Nacimiento], datos_personales_paciente.id_paciente AS ID, 
                      creditos.id_detalle_venta, min(creditos.saldo) as Saldo
FROM         datos_personales_paciente INNER JOIN
                      clientes ON datos_personales_paciente.id_cliente = clientes.id_cliente INNER JOIN
                      creditos ON datos_personales_paciente.id_paciente = creditos.id_paciente AND clientes.id_cliente = creditos.id_cliente
WHERE     (datos_personales_paciente.nombre NOT LIKE N'%*%') AND (clientes.id_cliente = 6) AND (creditos.estado LIKE N'%adeuda%')
GROUP BY datos_personales_paciente.nombre + ' ' + datos_personales_paciente.ap_paterno + ' ' + datos_personales_paciente.ap_materno, datos_personales_paciente.sexo, 
                      datos_personales_paciente.fecha_nac, datos_personales_paciente.id_paciente, creditos.id_detalle_venta, creditos.saldo
Me resulta esto:
Nuevo - M - 2010-03-16 - 8 - 264 - 35.50
Nuevo - M - 2010-03-16 - 8 - 264 - 55.50

Yyyy sólo debería mostrar el de 35.50 no?
Alguna idea? GRacias de antemano!