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

condicional en query

Estas en el tema de condicional en query en el foro de SQL Server en Foros del Web. Hola a todos, tengo un problema y por más que busco no consigo una solución, tengo el objetivo de encontrar un número de una serie, ...
  #1 (permalink)  
Antiguo 01/08/2014, 07:11
 
Fecha de Ingreso: mayo-2013
Mensajes: 34
Antigüedad: 10 años, 11 meses
Puntos: 0
condicional en query

Hola a todos, tengo un problema y por más que busco no consigo una solución,

tengo el objetivo de encontrar un número de una serie, ese número puede estar repetido mil veces pero no con su serie, por ello debo hacer 2 condiciones en el where, eso es fácil, a pesar de que va por rangos y demás pero el número ya lo localizo, ahora el coger la serie de ese número y compararla con la otra tabla, son 2 tablas, es donde me pierdo.. os pongo lo que tengo:


select LEFT(serie,2) // aqui selecciono solo los 2 primeros números porque es lo que me importa, las series son de 2 dígitos casi siempre, a veces son de 1 y a veces en la otra tabla no sale nada ( es el equivalente a cuando es 1).


from cajas WHERE RIGHt(fin_caja,4) = ( select top 1 RIGHT(dato,4) from cajas ) AND dato BETWEEN right(inicio_caja,6) AND right(fin_caja,6);


hasta ahí todo bien, el problema es... como puedo yo hacer la excepción que cuando es 1 digito me cargue todo lo que hay, y que al coger 2 si es 1 logicamente deja un espacio en blanco queda algo asi "A " y al compararlo con "A" no es lo mismo....

espero que se me entienda...

un saludo!
  #2 (permalink)  
Antiguo 01/08/2014, 07:24
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: condicional en query

un "A" y un "A " no es lo mismo, aqui la pregunta cuando haces el left te regresa 2 caracteres y estos pueden ser "A "????
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 01/08/2014, 07:28
 
Fecha de Ingreso: mayo-2013
Mensajes: 34
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: condicional en query

Claro esa es una parte, si yo comparo "A " con "A" no me reconoce como igual... y luego que una tabla tiene el valor "A" y en la otra cuando solo hay una A es decir serie A y ya está no sale nada en serie... eso es lo que más me lia...

eso de "A " se puede solucionar con un comodin pero entonces una serie "Bc" seria igual que una "Bh"...
  #4 (permalink)  
Antiguo 01/08/2014, 07:40
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: condicional en query

ya probaste con esto:

Código SQL:
Ver original
  1. SELECT rtrim(ltrim(LEFT(serie,2))
  2. FROM cajas WHERE RIGHT(fin_caja,4) = ( SELECT top 1 RIGHT(dato,4) FROM cajas ) AND dato BETWEEN RIGHT(inicio_caja,6) AND RIGHT(fin_caja,6)
o quizas con:

Código SQL:
Ver original
  1. SELECT REPLACE(LEFT(serie,2),' ','')
  2. FROM cajas WHERE RIGHT(fin_caja,4) = ( SELECT top 1 RIGHT(dato,4) FROM cajas ) AND dato BETWEEN RIGHT(inicio_caja,6) AND RIGHT(fin_caja,6)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 01/08/2014, 08:06
 
Fecha de Ingreso: mayo-2013
Mensajes: 34
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: condicional en query

No entiendo ese código, me lo puedes explicar?
  #6 (permalink)  
Antiguo 01/08/2014, 08:16
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: condicional en query

dices que tienes un espacio en blanco en tu cadena que es lo que te causa el problema no?? pues con un ltrim y rtrim eliminas los espacios en blanco a la derecha y a la izquierda de tu cadena :), el segundo query reemplaza los espacios en blanco de una cadena por el caracter '' o lo que es lo mismo los remueve :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: condicional, query, select, tabla
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 03:55.