![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
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?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#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. |
|
#8
|
|||
|
|||
|
Amigo tienes toda la razón...
Saludos cordiales |
|
#9
|
|||
|
|||
|
Gracias amigos por sus respuestas y sus aportes.
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|