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

consulta con where que devuelva todos los registros de una tabla

Estas en el tema de consulta con where que devuelva todos los registros de una tabla en el foro de SQL Server en Foros del Web. Hola estoy haciendo una consulta que me devuelva los registros de mi tabla de facturas, a esta consulta le envío un parámetro @estado donde para ...
  #1 (permalink)  
Antiguo 24/01/2014, 09:58
 
Fecha de Ingreso: agosto-2013
Ubicación: Machala, El Oro, Ecuador
Mensajes: 7
Antigüedad: 11 años, 3 meses
Puntos: 0
consulta con where que devuelva todos los registros de una tabla

Hola estoy haciendo una consulta que me devuelva los registros de mi tabla de facturas, a esta consulta le envío un parámetro @estado donde para las facturas activas envío @estado=1 y para las anuladas envío @estado=0 pero quiero en la misma consulta poder tener una tercera opción que seria que devuelva todos los registros y ahí es en donde necesito ayuda quiero saber si existe algún comodín por ejemplo @estado=*, a continuación les trato de explicar lo que quiero hacer:

Anuladas : @ESTADO_FACTURA = 0
Activas : @ESTADO_FACTURA = 1
Todas : @ESTADO_FACTURA = ?

@ESTADO_FACTURA int

SELECT *

FROM dbo.FACTURA

WHERE dbo.FACTURA_VENTA.ESTADO_FACTURA = @ESTADO_FACTURA

gracias de ante mano por su ayuda.
  #2 (permalink)  
Antiguo 24/01/2014, 11:13
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: consulta con where que devuelva todos los registros de una tabla

comodin como tal para los estados no existe podrias hacer dependiendo el parametro un select u otro por ejemplo:

if @parametro=1
select * from tabla where perametro=1
if @parametro=0
select * from tabla where perametro=0
if @parametro=3
select * from tabla

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 26/01/2014, 01:29
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 4 meses
Puntos: 40
Respuesta: consulta con where que devuelva todos los registros de una tabla

Yo dejaría el parámetro nulo:
Código SQL:
Ver original
  1. --@ESTADO_FACTURA int=0;
  2. --@ESTADO_FACTURA int=1;
  3. @ESTADO FACTURA INT;
  4. SELECT  *
  5. FROM    dbo.FACTURA
  6. WHERE   dbo.FACTURA_VENTA.ESTADO_FACTURA=IsNull(@ESTADO_FACTURA,dbo.FACTURA_VENTA.ESTADO_FACTURA);
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #4 (permalink)  
Antiguo 30/01/2014, 14:09
 
Fecha de Ingreso: marzo-2009
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: consulta con where que devuelva todos los registros de una tabla

SELECT *

FROM dbo.FACTURA

WHERE (dbo.FACTURA_VENTA.ESTADO_FACTURA = @ESTADO_FACTURA OR @ESTADO_FACTURA IS NULL)


Anuladas : @ESTADO_FACTURA = 0
Activas : @ESTADO_FACTURA = 1
Todas : @ESTADO_FACTURA = NULL
  #5 (permalink)  
Antiguo 07/02/2014, 09:24
 
Fecha de Ingreso: agosto-2013
Ubicación: Machala, El Oro, Ecuador
Mensajes: 7
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: consulta con where que devuelva todos los registros de una tabla

La idea era que el usuario escoja una de las 3 opciones y de acuerdo a la opción seleccionado se envié el parámetro a la consulta sql, y con la misma consulta poder devolver los 3 posibles resultados:

ESCOJA UNA OPCIÓN: [ ] ACTIVAS [ ] ANULADAS [X] TODAS

al enviar NULL no me devuleve nada, asi que opte por la opcion de Libras e hice 2 consultas una en la que envio el parametro @estado (sea 1 ó 0) y otra general

SELECT * FROM FACTURA WHERE FACTURA_VENTA.ESTADO_FACTURA = @ESTADO_FACTURA

Y

SELECT * FROM FACTURA

Y de acuerdo a lo que escoja el usuaio llamo a una u otra consulta.

gracias a todos por dedicar un poco de su tiempo a mi preguntas.

Etiquetas: sql, sqlserver2008
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 16:16.