Multiple valor en parametro de Select en Dataset

14/12/2005 - 17:16 por Rick | Informe spam
Que tal, tengo un dataset que se carga con la siguiente consulta

SELECT cl_usuario, fh_venta, cl_venta, tpo_venta, total, pagado, abono,
cl_mov
FROM venta
WHERE (cl_usuario = @cl_usuario) AND (fh_venta BETWEEN @f1 AND @f2) AND
(tpo_venta = @tipo)

pero @cl_usuario puede tener N valores, desde 1 hasta N, como le puedo hacer
para mandar todos los posibles valores de @cl_usuario

@cl_usuario es de tipo entero, pense en hacerlo string y ahi agregar todos
los posibles valores y que quedara asi:

@cl_usuario="4 or cl_usuario=5 or cl_usuario=1 or cl_usuario2";

pensando a manera de cadena segun yo esto quedaria asi

SELECT cl_usuario, fh_venta, cl_venta, tpo_venta, total, pagado, abono,
cl_mov
FROM venta
WHERE (cl_usuario = 4 or cl_usuario=5 or cl_usuario=1 or cl_usuario2)
AND (fh_venta BETWEEN @f1 AND @f2) AND (tpo_venta = @tipo)

esto es valido?? o alguien me puede sugerir algo mas adecuado? necesito que
el parametro @cl_usuario tenga N valores
 

Leer las respuestas

#1 franczorh
10/02/2006 - 21:17 | Informe spam
SI TIENES VALORES NUMERICO Y NO NUMERICOS PARA UNA COLUMNA LO MAS CENSILLO
ES QUE LA COLUMNA SETA DE TIPO ALFANUMERICO Y ASI PODRAS PREGUNTAR POR "1"
O POR "N"
HAHY MUCHISIMAS FORMAS DE HACERLO
ASI:
SELECT cl_usuario, fh_venta, cl_venta, tpo_venta, total, pagado,
abono,
cl_mov
FROM venta
WHERE (fh_venta BETWEEN @f1 AND @f2) AND
(tpo_venta = @tipo)

ó
SELECT cl_usuario, fh_venta, cl_venta, tpo_venta, total, pagado,
abono,
cl_mov
FROM venta
WHERE (cl_usuario <> 0) AND (fh_venta BETWEEN @f1 AND @f2) AND
(tpo_venta = @tipo)

ó
SELECT cl_usuario, fh_venta, cl_venta, tpo_venta, total, pagado,
abono,
cl_mov
FROM venta
WHERE (cl_usuario in(1,2,3,4,3,'ect','N')) AND (fh_venta BETWEEN @f1
AND @f2) AND
(tpo_venta = @tipo)




Rick wrote:

Que tal, tengo un dataset que se carga con la siguiente consulta

SELECT cl_usuario, fh_venta, cl_venta, tpo_venta, total, pagado, abono,
cl_mov
FROM venta
WHERE (cl_usuario = @cl_usuario) AND (fh_venta BETWEEN @f1 AND @f2) AND
(tpo_venta = @tipo)

pero @cl_usuario puede tener N valores, desde 1 hasta N, como le puedo hacer
para mandar todos los posibles valores de @cl_usuario

@cl_usuario es de tipo entero, pense en hacerlo string y ahi agregar todos
los posibles valores y que quedara asi:

@cl_usuario="4 or cl_usuario=5 or cl_usuario=1 or cl_usuario2";

pensando a manera de cadena segun yo esto quedaria asi

SELECT cl_usuario, fh_venta, cl_venta, tpo_venta, total, pagado, abono,
cl_mov
FROM venta
WHERE (cl_usuario = 4 or cl_usuario=5 or cl_usuario=1 or cl_usuario2)
AND (fh_venta BETWEEN @f1 AND @f2) AND (tpo_venta = @tipo)

esto es valido?? o alguien me puede sugerir algo mas adecuado? necesito que
el parametro @cl_usuario tenga N valores

Preguntas similares