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

Condición dentro de un where

Estas en el tema de Condición dentro de un where en el foro de SQL Server en Foros del Web. Hola, Lo primero presentarme ante todos y dar las gracias a quien pueda prestar un poco de atención a este post. Ahí va mi pregunta, ...
  #1 (permalink)  
Antiguo 21/10/2011, 10:45
 
Fecha de Ingreso: octubre-2011
Mensajes: 2
Antigüedad: 12 años, 5 meses
Puntos: 0
Condición dentro de un where

Hola,

Lo primero presentarme ante todos y dar las gracias a quien pueda prestar un poco de atención a este post. Ahí va mi pregunta, tened en cuenta que soy bastante novata.

Dentro de una consulta, dentro del where, tengo una larga lista de igualdades AND y me gustaría que una de ellas variase dependiendo de si un valor se encuentra dentro de una tabla.

El pseudocodigo sería algo así:

Si existe clientes.numero_cliente=&1 entonces devolvería AND saldo.numero_cliente(+)=clientes.numero_cliente, si en la tabla clientes no se encontrase ese numero de cliente se tomaría AND saldo.numero_cliente=clientes.numero_cliente

Estaré muy agradecida con cualquier aportación ya que no he conseguido encontrar nada en el foro acerca del tema.

Un saludo y muchas gracias.
  #2 (permalink)  
Antiguo 21/10/2011, 10:52
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: Condición dentro de un where

No saldria con un case dentro del select??

select
case when clientes.count=1 then sum(saldo) else otra_cosa end as campo from tabla wehre condicion


Pon datos de tus tablas y que quieres lograr para poder ayudarte mejor :)

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 22/10/2011, 05:37
 
Fecha de Ingreso: octubre-2011
Mensajes: 2
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Condición dentro de un where

Sí, he probado con un case pero no tengo muy claro como tendria que hacerlo.

No dispongo del código en estos momentos pero vendría a ser algo como lo que sigue:

select *

from objeto, lista, clientes, saldo

where
AND objeto.numero_cliente=lista.numero_cliente
AND lista.numero_cliente=clientes.numero_cliente
...
-- Esto sería lo que pretendo solucionar con el case
if (clientes.numero_cliente=&1 se encuenra en la tabla)
AND saldo.numero_cliente(+)=clientes.numero_cliente
else (clientes.numero_cliente=&1 no devuelve nada)
AND saldo.numero_cliente=clientes.numero_cliente
--

¿Existe alguna forma de "transformar" ese if/else en un case o en cualquier otra cosa para conseguir lo que busco?

Un saludo y muchas gracias por tu ayuda.
  #4 (permalink)  
Antiguo 24/10/2011, 08:07
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: Condición dentro de un where

Que quieres lograr con esta linea

AND saldo.numero_cliente(+)=clientes.numero_cliente

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: condición, 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 17:45.