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

Consulta de mínimo valor

Estas en el tema de Consulta de mínimo valor en el foro de Mysql en Foros del Web. Hola, Tengo una consulta que me trae la fecha menor de un cobro para un cliente en específico. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT ...
  #1 (permalink)  
Antiguo 28/06/2010, 05:14
 
Fecha de Ingreso: abril-2007
Mensajes: 101
Antigüedad: 17 años
Puntos: 0
Exclamación Consulta de mínimo valor

Hola,

Tengo una consulta que me trae la fecha menor de un cobro para un cliente en específico.

Código SQL:
Ver original
  1. SELECT MIN(fecha) AS DATE FROM cobro WHERE cliente = 1022927;

En la BD no hay cobros para el cliente por lo tanto debería devolver NULL.

En el manejador la consulta me trae NULL pero cuando lo mando a ejecutar desde PHP me retorna 1, pero igual no debería retornar eso porque en la BD el campo fecha tiene datos del tipo date(Y-m-d).

Sera culpa de PHP, porque tengo implementada la función para la lectura de la BD en otras consultas, y hasta otra igual para otra tabla un poco más arriba, y todo está perfecto.

HELP!
  #2 (permalink)  
Antiguo 28/06/2010, 05:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta de mínimo valor

Cita:
En el manejador la consulta me trae NULL pero cuando lo mando a ejecutar desde PHP me retorna 1, pero igual no debería retornar eso porque en la BD el campo fecha tiene datos del tipo date(Y-m-d).
Si en las otras consultas anda bien, es muy probable que el error esté en el PHP. Eso lo deberías consultar en el Foro de PHP, no aquí.
De todos modos te advierto que tienes un problema potencial y es que estás usando como alias de la función MIN() una palabra reservada, lo que puede dar lugar a resultados erráticos o inesperados.
DATE es tanto un tipo de dato (fecha) como el nombre de una función, y no debe ser usado como alias o como nombre de columna, tabla o base.

Ten cuidado con eso...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 28/06/2010, 05:42
 
Fecha de Ingreso: abril-2007
Mensajes: 101
Antigüedad: 17 años
Puntos: 0
Respuesta: Consulta de mínimo valor

Gracias por tu respuesta, si estaba pensando mas bien postearlo por allá... Pero terminé por acá.

Respecto al uso de date, si tienes razón pero no la ando usando dentro de la tabla... Simplemente parafrasee el SQL para que no salieran datos reales de la empresa (clausulas de confidencialidad) y se me pasó ese date en vez de fecha... Gracias de todas maneras!
  #4 (permalink)  
Antiguo 28/06/2010, 06:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta de mínimo valor

Cita:
Simplemente parafrasee el SQL para que no salieran datos reales de la empresa (clausulas de confidencialidad)

Disculpa, pero cuando puedas dime qué ley de qué país protege los nombres de los campos de una tabla desconocida, máxime cuando su base de origen se desconoce por completo...

Hasta lo que yo sabía, lo que se protege son los datos, no los nombres de los campos.



¿Te imaginas considerar el campo "fecha_ingreso", como material clasificado?

Perdón, pero me causó algo de gracia, porque este tema lo tratamos hace un tiempo en el foro BBDD, y creo que quedó más o menos en esos términos: No es posible registrar eso porque no puedes probar que en otra base no exista uno con el mismo nombre...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: Ninguno
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 06:01.