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

(RESUELTO) Error 1305 - FUNCTION .MIN does not exist. (..y la madre que la..!!!)

Estas en el tema de (RESUELTO) Error 1305 - FUNCTION .MIN does not exist. (..y la madre que la..!!!) en el foro de Mysql en Foros del Web. Buenas gente del foro, a ver si alguien me puede indicar por qué la funcion MIN de mi SQL no está instalada (o no existe) ...
  #1 (permalink)  
Antiguo 26/01/2007, 09:22
Avatar de nanomartin  
Fecha de Ingreso: mayo-2005
Ubicación: Moron - Bs As (ARG)
Mensajes: 50
Antigüedad: 18 años, 10 meses
Puntos: 0
Exclamación (RESUELTO) Error 1305 - FUNCTION .MIN does not exist. (..y la madre que la..!!!)

Buenas gente del foro, a ver si alguien me puede indicar por qué la funcion MIN de mi SQL no está instalada (o no existe) ??

Me tragué el manual completo y la sintaxis sería correcta, pero no anda!

El manual solo tiene un listado con los códigos de error, pero EN NINGUN LADO DICE COMO RESOLVERLOS!!! , ni en el .chm que tare el programa (ver 5.0) ni en el manual on line
Cita:
tripledobleve.mysql.com/search/index.php?q=how+to+solve+%2B+%22error+1305%22&base =http%3A%2F%2Fdev.mysql.com&lang=en&version=5.0&do c=0&m=o
Es un proyecto para imputar pagos en cuotas, hasta llegar a saldo 0. Cuando saldo = 0, el registro ya no se mostrará en el listado, pero solo debo mostrar el menor saldo de cada IDVENTA.. se entiende?

Tengo dos tablas, una de VENTAS (idventa, total, nya -nomb y apell-) y otra tabla PAGOS de donde traer mediante la relacion con idventa_pago el MENOR saldo que tenga registrada esa venta

La sintaxis es:
Código PHP:
SELECT idventatotalnyapagos.idventa_pagopagos.saldo
FROM ventas INNER JOIN pagos ON ventas
.idventa=pagos.idventa_pago
WHERE 
(SELECT MIN (saldoFROM pagos) >
No se queja por la sintaxis, pero resulta que un error me dice
MySQL error#: 1305
FUNCTION (nomb_conexion).MIN does not exist

Alguien me puede decir qué pasa?

Adelantadas Gracias!!!

Última edición por nanomartin; 27/01/2007 a las 09:17
  #2 (permalink)  
Antiguo 26/01/2007, 10:08
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Re: Error 1305 - FUNCTION .MIN does not exist. (..y la madre que la..!!!)

Que tal Martín.

No se mucho de mySQL, pero en el lenguaje standar de SQL no se pueden usar funciones de agreado ( min, max, avg, count, etc ) en la cláusula WHERE.

Quizá esto sea lo que buscas:
Código:
SELECT v.idventa, v.total, nya, p.idventa_pago, min(p.saldo)
FROM ventas v
          INNER JOIN pagos p ON v.idventa=p.idventa_pago
GROUP BY v.idventa, v.total, nya, p.idventa_pago
HAVING  MIN (saldo)  >0
La cláusula HAVING establece las condiciones de la cláusula GROUP BY de la misma forma que WHERE interactúa con SELECT.

Sino es lo que buscas, escribes y por aquí te ayudamos.

Saludos!
  #3 (permalink)  
Antiguo 27/01/2007, 06:22
Avatar de nanomartin  
Fecha de Ingreso: mayo-2005
Ubicación: Moron - Bs As (ARG)
Mensajes: 50
Antigüedad: 18 años, 10 meses
Puntos: 0
(RESUELTO) Error 1305 - FUNCTION .MIN does not exist. (..y la madre que la..!!!)

Hola Daniel.
Muchas gracias por la srespuesta, de todos modos, cuando termine de escribir el post, me encontre conque la persona que tiene mensaje JUSTO ARRIBA MIO tenía le mismo problema, y resolví el mio!

Era la sintaxis... NO LLEVA ESPACIO ENTRE 'MIN' y el paréntesis que indica el campo. Tan solo eso...

Te copio la sintaxis que funciona:

Código:
SELECT idventa, total, nya, estado, pagos.idventa_pago, pagos.saldo
FROM ventas LEFT JOIN pagos ON ventas.idventa=pagos.idventa_pago
WHERE estado <> 'S' AND (SELECT MIN(pagos.saldo)) > 0
GROUP BY idventa
El "estado <> S" es porque había llegado el momento quedaba un registro de una venta que tenía saldo 0, no obstante, estaban los anteriores, con saldo mayor a cero, y me los traía la consulta, por lo que resolví en la tabla de ventas poner un campo que por defecto es "P"(endiente) y cuando saldo llega a 0, se actualiza a "S"(aldado)

Ahora estoy peleandome con otro temita, pero no refiere a este trema, así que Muchas gracias de todos modos!

Última edición por nanomartin; 27/01/2007 a las 09:15
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 08:12.