Primero les pego el código para que vean de que se trata:
Código SQL
[-]
DECLARE @nIdPrestadorHabilitado int DECLARE @sCodigoPrestadorHabilitado varchar(15)
DECLARE @sCodigoModeloActual varchar(5) DECLARE @sNuevoCodigoModelo char(5)
SELECT @sNuevoCodigoModelo = NULL
DECLARE @sUltimaLetra varchar(1) SELECT @sUltimaLetra = MAX(RIGHT(RTRIM(CodigoModelo), 1))
FROM ModelosPrecio WHERE
SUBSTRING(CodigoModelo, 1, LEN( @sCodigoPrestadorHabilitado)) = @sCodigoPrestadorHabilitado AND
LEN(RTRIM(CodigoModelo)) = LEN( @sCodigoPrestadorHabilitado) + 1 AND
RIGHT(RTRIM(CodigoModelo), 1) BETWEEN 'A' AND 'Z'
SELECT @sUltimaLetra = ISNULL( CHAR( ASCII( @sUltimaLetra ) + 1 ), 'A')
SELECT @sNuevoCodigoModelo = LEFT(LTRIM(RTRIM( @sCodigoPrestadorHabilitado )), 4 ) + ISNULL( @sUltimaLetra,'')
El tema es el siguiente, trabajamos con un código de prestador para distinguir a los prestadores de la empresa donde trabajo que por ejemplo es 765. Para actualizar el modelo de cada prestador le asignamos una o mas letras a la derecha ej: 765A, 765G....
Bueno, lo que hace el código es cada vez que ejecutamos el programa cambiarle el modelo, por ejemplo de 765A lo cambiamos a 765B, o sino de 765D a 765E. El tema es que se me complica cuando llega a la Z, y quiero cambiar el modelo. De 765Z va al 765Z, y yo necesito que vaya del 765Z al 765AA, del 765AZ al 765 BA, y asi sucesivamente.
Alguien me puede tirar una idea de como hacerlo, ya que no se me ocurre nada.
Muchisimas Gracias!