| |||
Dudas con sentencia MAX Hola disculpen tengo un problemilla,yo tengo una tabla Detalle_Examen cuyo campo id es un correlativo que va asi: "DEXAM1","DEXAM2","DEXAM3",...., y tengo esta sentencia: select max(idDeatll_examen) as idDet from detalle_examen esto me funcionaba bien hasta que el campo id llego hasta "DEXAM9", cuando ejecutaba la sentencia me botaba el mayor, q en este aso era esa: "DEXAM9"...mi problema vino cuando inserte una mas(es decir "DEXAM10"), cuando volví a correr la sentencia anterior me sigue saliendo "DEXAM9", cuando debería salirme "DEXAM10"...a qué se puede deber esto??? |
| |||
Respuesta: Dudas con sentencia MAX DEXAM1 DEXAM2 DEXAM3 ... Ese id es alfanumerico luego se ordena como tal, igual que se ordenan las palabras en un diccionario DEXAM1 DEXAM10 DEXAM100 DEXAM1000 DEXAM2 DEXAM20 DEXAM21 DEXAM3 DEXAM30 ... Si quieres que se ordene numericamente elimina la parte constante "DEXAM", usa un id numerico. "DEXAM" no aporta nada ... Quim |
| |||
Respuesta: Dudas con sentencia MAX Gracias por la rpta, lo q pasa es que necesito que el codigo sea así,tambien tengo otra que es de muestras donce mi codigo es Mue1,Mue2,Mu3...., hay alguna manera de como hacerlo,o eso ya seria parte del codigo, gracias |
| |||
Respuesta: Dudas con sentencia MAX Podrías probar algo con la sentencia LEFT en el order, parecido a lo que jurena ha montado en el enlace: forosdelweb.com/f86/order-no-ordena-707243/ (disculpa pero todavía no puedo poner enlaces) |
| ||||
Respuesta: Dudas con sentencia MAX Es posible que para solvertar la situación pudieras usar, más que LEFT(), MID(), de modo de convertir la parte restante de la clave en un numero. Algo así:
Código SQL:
La idea es que tome los X caracteres desde la posición 5 (primer dígito de la clave), siendo x equivalente al largo del contenido del campo menos los primero 4 caracteres, y a eso lo convierta en un entero.Ver original El único inconveniente que tiene esto es que el resultado no puede usarse inmediatamente como comparador en el WHERE, pero si se puede ordenar por él.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |