cancel
Showing results for 
Search instead for 
Did you mean: 

Sumar campos nvarchar

Former Member
0 Kudos

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!!

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

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

Former Member
0 Kudos

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!

Former Member
0 Kudos

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

Former Member
0 Kudos

Excelente, me funciona de maravilla

Muchas gracias!!!

Answers (0)