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

Problemas con el MAX...

Estas en el tema de Problemas con el MAX... en el foro de Mysql en Foros del Web. Hola a todos tengo un campo donde almaceno valores de un documento, asi: Código: nro_doc ====== 1 2 3 4-8 9 10 11-15 Y lo ...
  #1 (permalink)  
Antiguo 20/03/2009, 07:29
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Problemas con el MAX...

Hola a todos tengo un campo donde almaceno valores de un documento, asi:
Código:
nro_doc
======
1
2
3
4-8
9
10
11-15
Y lo que necesito es que se devuelva el Maximo valor de esta lista, para ello utilizo el MAX asi:
Código:
SELECT MAX(nro_doc) AS doc FROM tb_documento
Y me devuelve: 9, anteriormente me devolvia: 11-15, alguna idea de por que sucede esto o quizas por ahi alguna solucion, de antemano gracias.
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #2 (permalink)  
Antiguo 20/03/2009, 08:47
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Problemas con el MAX...

Hola lo que pasa es que tu campo es el tipo varchar, y al ordenarlos se ordenan alfabéticamente.
Una de las soluciones que se me ocurre ahora es que añadas una colima mas para poner el segundo valor y luego conviertas a a int cada una de ellas.
nro_doc_inicion | nro_doc_fin
=====================

Otra seria que añadas una columna adicional INT y lo llames por ejemplo "orden" y alli coloques el orden en que deseen que se muestren.

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 20/03/2009, 14:48
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Problemas con el MAX...

Bellenger,
estoy con Genetix (saludos, amigo).
Pero te haré otra propuesta, si es que no se repite ningún número inicial (veo que no ocurre). En realidad, uso el casting a int que te proponía Genetix. Este corta la cadena por el primer carácter que no es numérico, el guión, y convierte en numéricos los caracteres cogidos; luego saca el mayor, pero necesitamos la cadena, por lo que luego hago una consulta para buscar la cadena cuyo casting a numérico coincide con el máximo.

Código sql:
Ver original
  1. SELECT nro_doc FROM tabla WHERE CAST(nro_doc AS UNSIGNED) = (SELECT MAX(CAST(nro_doc AS UNSIGNED)) FROM tabla)

Saludos para ti también, Bellenger.
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 12:23.