none
Consulta parametrizada en report con SQL Server 2005 RRS feed

  • Pregunta

  • Hola, tengo un problema a la hora de hacer una consulta y mostrar los resultados que necesito. Voy a intentar contar lo que quiero conseguir con una consulta sencilla.

    Supongamos que tengo una consulta de pedidos y hago la siguiente query para el dataset del Visual Studio:

    select pedido, descripcion, estado from pedidos where estado like @variable

    Empiezo a preparar el report y le digo que los valores del parámetro @variable son O o C, así al visualizarlo tengo una combo box con las opciones O y C, de esta forma puedo ver los pedidos en estado C o en estado O.

    La gran duda es ¿como consigo verlos todos? Me gustaría que la combo tuviera 3 opciones: O, C, TODOS

    No sé como hacerlo y no he podido encontrar información al respecto.

    Muchas gracias,
    Angel.
    • Cambiado Fran DiazModerator martes, 26 de mayo de 2009 18:09 Reporting ([Loc]From:SQL Server)
    miércoles, 17 de enero de 2007 9:28

Respuestas

  • Si entiendo bien lo que desea es poder poner valores por defecto para que el reporte pueda salir predeterminada sin necesidad de elegir algun parametro y esto no se puede hacer se puede tener un valor predeterminado pero siempre haria esa consulta, lo otro seria utilizar el report viewer para que exista una pagina encargada de manipular los criterios o extender con un add-in los reportes
    martes, 6 de febrero de 2007 13:35

Todas las respuestas

  • Si me permites que me meta donde no me llaman, un estado es algo fijo, no uses like, usa = el rendimiento es mucho mejor.

    Se supone que los estados deberian estar en una tabla de estados con una foreign key desde la tabla de pedidos, asi que los parametros se tendrian que cojer de una query a la tabla de estados, si no cada vez que añadas un estado tendras que modificar el report.

    Por lo tanto el resport tendria que tirar de una vista que haga un join entre pedidos y estados.

    En 2005 puedes indicarle simplemente que quieres que se pueda filtrar por un campo y te saldra un combo con todos los posibles valroes para que el usuario marque cuales quieren que salgan y cuales no.

    Un saludo.

    *******************************************************************************************************************

    Colabora con el foro: Si la respuesta te es de utilidad marca la pregunta como respondida.

    *******************************************************************************************************************

    Daniel Matey.

    MVP

    MCSE, MCSA, MCSD, MCDBA.

    Blog: http://geeks.ms/blogs/dmatey

    miércoles, 17 de enero de 2007 19:05
  • Tienes razón, de hecho tengo consultas que utilizan el = y consultas con el like, de la misma forma que tengo consultas en la que eliges el número de pedido y lo saco de una query y consultas como la del ejemplo en la que sólo pueden ser 2 valores y siempre va a ser así.

    Pero el problema en todos los casos sigue siendo el mismo, al final acabo comparando un campo a una variable y, siguiendo con el ejemplo primero, lo máximo que he conseguido es poder elegir entre los dos valores que le doy o en blanco y, por tanto,
    o veo los campos con O, o veo los que tienen C o veo los que están en blanco (ninguno) pero no puedo ver todos los campos y eso es lo que necesito, tener la posibilidad de ver uno, otro o todos.
    jueves, 18 de enero de 2007 17:08
  • Sigo dándole vueltas a ver como resulevo esto y no hay manera, no lo consigo ¿no hay nadie que pueda echarme una mano?

    Muchas gracias.
    lunes, 29 de enero de 2007 14:53
  • Para poder realizarlo digale al parametro que puede recibir multivalores, cree un dataset con los valores posibles preferiblemente extraigalos de una tabla parametrica y asigneselos en valores disponibles. Todo esto sobre el reporte le da click derecho parametros de reporte
    lunes, 5 de febrero de 2007 15:52
  • Sí, también lo probé pero el problema no es ese.

    La cuestión está en que ya puedo poner en el WHERE que la comparación sea con un LIKE o hacer que la combo sea multivalue y comparar la variable con un IN, la historia viene cuando estoy viendo el report y con sus combo y sus filtros, etc ... y decido que esa vez no quiero filtrar, quiero ver todos los datos, lo ideal es que si no toco ningún filtro y le pincho a que genere el informe lo saque con todos los datos pero no hay forma.
    martes, 6 de febrero de 2007 7:56
  • Si entiendo bien lo que desea es poder poner valores por defecto para que el reporte pueda salir predeterminada sin necesidad de elegir algun parametro y esto no se puede hacer se puede tener un valor predeterminado pero siempre haria esa consulta, lo otro seria utilizar el report viewer para que exista una pagina encargada de manipular los criterios o extender con un add-in los reportes
    martes, 6 de febrero de 2007 13:35
  • hola

    yo de hecho cambiaria la consulta asi: select pedido, descripcion, estado from pedidos where (estado=@variable or @variable='X')

    y aumentaria un tercer parametro que sea la X por tanto tendrias O,C y X

    de esa forma logra los que quieres

    salu2

    Sergio


    Salu2 Sergio T

    viernes, 23 de marzo de 2012 19:26