Cálculo Nif

06/02/2004 - 19:07 por Alberto | Informe spam
Tengo que calcular en la letra del nif a partir del dni en una tabla.
Estoy haciendo una prueba con un dato en una variable antes de hacer el
update en la tabla pero no me funciona. El código es el siguiente:

declare @letras char(23)
declare @nif char(9)

Set @letras = 'TRWAGMYFPDXBNJZSQVHLCKE'
set @nif = '12345678'

set @nif = @nif + Substring(@Letras, (@nif % 23) + 1, 1)
print @nif
print Substring(@Letras, (@nif % 23) + 1, 1)

La instrucción Substring ... calcula bien la letra ('Z') en este caso pero
no funciona la concatenación con la variable @nif ya que esta sigue valiendo
'12345678'.

¿A qué se debe?
Gracias.
 

Leer las respuestas

#1 Jose Mariano Alvarez \(MUG\)
06/02/2004 - 19:10 | Informe spam
Tu problema es que tienes un espacio detras del numero porque usas una
variable char. Si usas varchar funciona OK. Sino debes usar la funcion
RTRIM.

declare @letras varchar(23)
declare @nif varchar(9)

Set @letras = 'TRWAGMYFPDXBNJZSQVHLCKE'
set @nif = '12345678'

print Substring(@Letras, (@nif % 23) + 1, 1)
set @nif = @nif + Substring(@Letras, (cast(@nif as int) % 23) + 1, 1)
print @nif



Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar

"Alberto" wrote in message
news:
Tengo que calcular en la letra del nif a partir del dni en una tabla.
Estoy haciendo una prueba con un dato en una variable antes de hacer el
update en la tabla pero no me funciona. El código es el siguiente:

declare @letras char(23)
declare @nif char(9)

Set @letras = 'TRWAGMYFPDXBNJZSQVHLCKE'
set @nif = '12345678'

set @nif = @nif + Substring(@Letras, (@nif % 23) + 1, 1)
print @nif
print Substring(@Letras, (@nif % 23) + 1, 1)

La instrucción Substring ... calcula bien la letra ('Z') en este caso pero
no funciona la concatenación con la variable @nif ya que esta sigue


valiendo
'12345678'.

¿A qué se debe?
Gracias.


Preguntas similares