Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-12-2008
peripla peripla is offline
Miembro
 
Registrado: abr 2006
Posts: 54
Poder: 19
peripla Va por buen camino
Ayuda! No le encuentro la vuelta....

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!

Última edición por dec fecha: 02-12-2008 a las 15:16:13.
Responder Con Cita
  #2  
Antiguo 02-12-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
Código SQL [-]
SELECT @sUltimaLetra = ISNULL( CHAR( Case when ASCII( @sUltimaLetra ) in (90,122) THEN ASCII('A') else ASCII( @sUltimaLetra ) + 1 end ), 'A')
__________________

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 00:47:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi