Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

max (campo_char) no me regresa el dato correcto

Estas en el tema de max (campo_char) no me regresa el dato correcto en el foro de SQL Server en Foros del Web. Hola, tengo dos tablas con un campos similares uno de estos campos es de tipo char en ambas tablas, con una de longitud 11 y ...
  #1 (permalink)  
Antiguo 24/02/2009, 13:05
Avatar de ministroy  
Fecha de Ingreso: febrero-2002
Ubicación: Oaxaca, Oaxaca
Mensajes: 93
Antigüedad: 22 años, 3 meses
Puntos: 0
max (campo_char) no me regresa el dato correcto

Hola, tengo dos tablas con un campos similares uno de estos campos es de tipo char en ambas tablas, con una de longitud 11 y en la otra de 13 caracteres el campo almacena claves como la siguiente 08190679999 y quiero obtener el siguiente valor apartir del octavo caracter hasta el ultimo para almacenarlo en la tabla de que tiene el campo de 13 caracteres quedaria 081906710000 esto si lo puedo obtener pero cuando intento obtener el nuevo valor despues de este me marca como valor maximo 08190679999 y no 081906710000 como deberia ser esta es mi consulta:

select max(loc)ultima,max(substring(loc,8,13))+1 nueva,des_mun,des_dto,des_reg
from((SELECT localidad loc, cl.des_mun des_mun, cl.des_dto des_dto, cl.des_reg des_reg
FROM siso.dbo.catloc cl
WHERE substring(cl.localidad,1,7)=0819067 and cl.rubro='E'
)
union
(SELECT otralocali loc, o.des_mun des_mun, o.des_dto des_dto, o.des_reg des_reg
FROM form_pav.dbo.otralocali o
WHERE substring(o.otralocali,1,7)=0819067
))as otra group by des_mun,des_dto,des_reg


En conclusion de este valor 9999 y 10000 me detecta como valor maximo 9999

Agredecere su ayuda
__________________
Evoluciona en Internet -> E-WebStudio.Net
  #2 (permalink)  
Antiguo 24/02/2009, 13:32
Avatar de Thumper  
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 19 años, 8 meses
Puntos: 6
Respuesta: max (campo_char) no me regresa el dato correcto

Hola, esto:

max(substring(loc,8,13))

reemplazalo por esto:

max(cast(substring(loc,8,13) as integer))

saludos
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD
  #3 (permalink)  
Antiguo 24/02/2009, 13:41
Avatar de ministroy  
Fecha de Ingreso: febrero-2002
Ubicación: Oaxaca, Oaxaca
Mensajes: 93
Antigüedad: 22 años, 3 meses
Puntos: 0
Respuesta: max (campo_char) no me regresa el dato correcto

muchas gracias problema solucionado
__________________
Evoluciona en Internet -> E-WebStudio.Net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:55.