Bases de Datos - Problrma Consulta Sql Urgente

   
Vista:

Problrma Consulta Sql Urgente

Publicado por Miguel (1 intervención) el 08/01/2009 17:09:45
Tengo la sgte clausula en mi consulta quiero que si la variable @num_turno es distinta a vacia haga la condicion Pag.num_turno = @num_turno si es vacia que se salte la condicion como lo tendria que hacer

WHERE (CONVERT(VARCHAR(10),Pag.Fec_Contable,103) >= CONVERT(VARCHAR(10),@Fec_ContableINI ,112)
AND CONVERT(VARCHAR(10),Pag.Fec_Contable,103) <= CONVERT(VARCHAR(10),@Fec_ContableFIN ,112))
AND Pag.Tip_Movimiento = 1 --Pago

------------------------------------------------
if @Num_Turno <> ' ' then
------------------------------------------------
........................................................................
Pag.Num_Turno = @Num_Turno
........................................................................

end if
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problrma Consulta Sql Urgente

Publicado por Carlos (1 intervención) el 09/01/2009 12:10:44
Hola, Miguel.
No estoy seguro de haberte entendido, pero creo que lo que quieres es que si @Num_Turno contiene la cadena vacía no influya en los resultados de la sentencia SELECT, y que si contiene un valor, compare ese valor contra Pag.Num_Turno.

En ese caso, lo que yo haría sería:

...
AND Pag.Tip_Movimiento = 1
AND (@Num_Turno ='' Or Pag.Num_Turno=@Num_Turno)

Quizá también debas comprobar si @Num_Turno es NULO, aunque eso depende de la lógica de tu programa.

He utilizado lógica boolena para que, cuando @Num_turno sea cadena vacía, la condición se cumpla automáticamenet, con lo que no importa el resto de la "OR" (Pag.Num_Turno=@Num_Turno).
Pero en caso de que la condición [ @Num_Turno='' ] no se cumpla, lo que indicará la verdad de la condición "Or" será "Pag.Num_Turno=@Num_Turno", con lo que filtrará por ese valor.

Espero haberme explicado, y espero que funcione, hace ya tiempo que no toco SQL Server y me parece que es tu entorno.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar