on 05-01-2012 3:34 AM
Buen día expertos!
Sé que de entrada es un poco incongruente querer sumar campos que son alfanumericos, pero tengo el problema pues al subir una plantilla de una tabla de usuario hay un campo llave que se llama "code" el cual es obligatoria y sirve como referencia pero es alfanumerico.
Intente ponerlo como 1.2.3.... pero me lo ordenaba muy extraño, lo ordenaba así 10.100.101....199.2.20.200
Me dijeron que lo ordena así porque es un campo alfanumerico, entonces el code lo puse de la siguiente manera 0001,0002,0003....
De esa manera me respetaba el orden que yo quería que tuviera, pero ahora el problema es que cuando quieran agregar un campo a la tabla de usuario, ese code debe ser consecutivo y quier hacer que automaticamente si el último número es 01547, el siguiente sea 01548.
Alguien sabe como puedo sumar 2 campos alfanumericos que en realidad siempre vana ser numeros.
Espero haberme dado a explicar mi necesidad.
Adjunte una imagen para ser un poco más claro, la primer columna que aparece ahí es la que necesito sumar para que se lleve un consecutivo a pesar de que es alfanumerica.
Saludos y de antemano gracias!!
Hola Antonio,
Yo tengo esta consulta para sumar 1 al código de clientes que también es alfanumérico
SELECT CAST(MAX(CardCode) +1 AS NVARCHAR) FROM OCRD
Prueba con tu tabla y campo a ver si te lo suma.
Un saludo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola Teresa
Muchas gracias por tu respuesta.
El código que me mandaste me ha sido muy útil, pero solo queda un pequeño aunque importante detalle.
El problema es que mi número alfanumerico es por ejemplo 0157, y el codigo me pondrá el número consecutivo como 158, entonces necesito concatenar o anteponer ese "0" para que el campo no me lo quiera ordenar y me lo mande a otro lado
Pude concatenarlo así:
select '0' + (SELECT CAST(MAX(Code) +1 AS NVARCHAR) as Code FROM [@MI TABLA])
El problema es cuando llegue al número 0999... me va a poner 01000, cuando yo quisiera 1000
Pero por lo pronto me saca del apuro, muchas gracias!
Hola,
Prueba con esta
SELECT RIGHT ('0000' + CAST(MAX(CardCode) +1 AS NVARCHAR(4)),4) FROM OCRD
con esto le estás diciendo que tu número tiene 4 dígitos y que te rellene con ceros hasta esos cuatro cogiendo siempre 4 cómo máximo, por lo que cuando llegues a 1000 debería no ponerte un cero
Tienes que poner tus tablas y campos. Espero que te sirva,
Saludos,
Tere
User | Count |
---|---|
91 | |
9 | |
9 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.