FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Encontrar valor maximo de un texto mixto
hola, quisiera que me ayuden con este problemita.
Quiero generar un codigo autoincremental de un campo varchar, con texto mixto letras y numeros pero para eso quiero encontrar primero el valor mas alto. C1-N001 C1-N002 C1-N003 estoy intentando con este código pero hay un error se supone que este codigo sql toma la cadena de texto y quita los 4 primeros caracteres y los 3 restantes los convierte a int y busca el valor mas alto. |
#2
|
||||
|
||||
¿Para qué base de datos?
|
#3
|
||||
|
||||
¿Cuál? ¿Qué dice el error?
¿Qué base de datos? ¿Lo utilzias como un query o dentro de una trigger o un procedimiento almacenado? Posibilidad 1: Te dice que no puede convertirlo a entero: Puede ser que sea porque si quieres quitar 4 caracteres debas utiliar substrin(string, 4, largo). La posición 4 es la 4 y no la 3. Aunque creo que debería ser desde la posición 5 ya que la cuatro es la primera letra del segundo conjunto de datos (Cn-Cnnn). También habría que saber si el tercer parámetro se refiere a la posición final o a cuantos caracteres tomar: substring(c, 5, lenght(c)-5) /* de la quinta posición n caracteres */ substring(c, 5, length(c)) /* de la quinta posicion hasta la posición n */ Posibilidad 2: No existe la instrucción: Puede ser que no entienda substring o length o alguna otra cosa. Posibilidad 3: No existe el campo: Te has equivocado de nombre de campo. Posibilidad 4: No existe la tabla: Te has equivocado de nombre de tabla. Posibilidad ... Última edición por duilioisola fecha: 19-08-2014 a las 15:26:20. |
#4
|
|||
|
|||
Bueno para describir un poco más la consulta.
La base de datos que estoy usando es Posgresql, y la consulta va por medio de un TQuery y con respecto al error es el siguiente: no existe el tipo <<unsigned>>. ¿como quiero que funcione? Tengo el texto C1-N003 quiero que quite los cuatro primeros caracteres C1-N y de los siguientes tres 003 me seleccione el numero maximo el más alto. para tomar ese numero y generar un nuevo numero que incremente. |
#5
|
||||
|
||||
Si el prefijo siempre es C1-N el MAX debería valer, ¿no?
__________________
La Madurez se llama... ~~~Gaia~~~ |
#7
|
||||
|
||||
Por un lado el error es claro: no existe unsigned para Postgres. Deberás saber cuales son los tipos admitidos y utilizar uno de ellos.
Mira este link. De todos modos, yo insisto en que creo que la posición inicial debe ser 5
Si la longitud de la parte numerica es fija (3) puedes utilizarlo asi, si es variable, deberás utilizar char_length para calcularla. En este link tienes información de como se utiliza substring (como digo yo aparentemente) y char_length. Última edición por duilioisola fecha: 20-08-2014 a las 04:50:44. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Valor maximo de un campo | jafera | Firebird e Interbase | 4 | 25-10-2013 19:08:39 |
maximo valor de un subconjunto de datos | TrUnkS | SQL | 1 | 07-10-2010 18:21:20 |
valor maximo del autoincrement | anubis | Tablas planas | 2 | 16-07-2007 07:04:32 |
consultar el maximo valor | beatriz g | SQL | 4 | 16-08-2006 17:35:53 |
consulta con Valor maximo | isc_hilda | SQL | 3 | 29-04-2004 22:17:20 |
|