Cláusula IN condicionales
Publicado por María (1 intervención) el 29/01/2021 05:25:45
Hola chicos gusto saludarlos. Es la primera vez que posteo en este foro y es por que estoy haciendo un pequeño proyecto con un par de amigos. No somos muy expertos en SQL Server y considero que conocemos lo básico y al enfrentarnos con una consulta que requerimos para obtener cierta información, nos dimos a la tarea de investigar en internet pero no hemos logrado el resultado esperado.
Tenemos dos tablas. Una de de Autos, donde viene información del auto como Id, código, Nombre, Serie, NumMotor
Y la tabla de ClasificaAuto, con los campos Linea, Marca y Modelo. La línea es por ejemplo si es un carro de lujo, austero, etc. La marca por ejemlo Mazda, WW, VMW, etc. y el modelo por ejemplo 2020,2021. Mi consulta me debe obtener aquellos productos que cierta información dada de la línea, la marca y el modelo. La consulta nos regresa la información sin problemas cuando los 3 parámetros contienen información, pero cuando no contiene información, nos regresa informción pero no es la que nos debe regresar. Por ejemplo, si queremos obtener aquellos Autos de la línea "Lujo", me debe arrojar los autos de lujo, pero si también queremos que de los de lujo nos obtenga los de la marca Mazda, me debe dar los autos de lujo de la marca mazda, pero si sólo envío como parámetro los de la marca WW, me debe traer todos los que contengan esa clasificación sin importar la linea y modelo. Estos parámetros los enviamos desde una aplicación cliente y si no envía parámetros debe ser una cadena vacía, ya que es un reporte donde el usuario irá seleccionando por los 3 niveles que son la linea marca y modelo y con base a la selección del usuario, debemos presentar la información.
Mi consulta:
Ayer vimos un caso similar en este foro donde le recomiendan al usuario incluir dentro de cada and un OR validando el valor null pero tampoco nos función. Espero me puedan ayudar y de antemano les doy las gracias
Muchos saludos
Tenemos dos tablas. Una de de Autos, donde viene información del auto como Id, código, Nombre, Serie, NumMotor
Y la tabla de ClasificaAuto, con los campos Linea, Marca y Modelo. La línea es por ejemplo si es un carro de lujo, austero, etc. La marca por ejemlo Mazda, WW, VMW, etc. y el modelo por ejemplo 2020,2021. Mi consulta me debe obtener aquellos productos que cierta información dada de la línea, la marca y el modelo. La consulta nos regresa la información sin problemas cuando los 3 parámetros contienen información, pero cuando no contiene información, nos regresa informción pero no es la que nos debe regresar. Por ejemplo, si queremos obtener aquellos Autos de la línea "Lujo", me debe arrojar los autos de lujo, pero si también queremos que de los de lujo nos obtenga los de la marca Mazda, me debe dar los autos de lujo de la marca mazda, pero si sólo envío como parámetro los de la marca WW, me debe traer todos los que contengan esa clasificación sin importar la linea y modelo. Estos parámetros los enviamos desde una aplicación cliente y si no envía parámetros debe ser una cadena vacía, ya que es un reporte donde el usuario irá seleccionando por los 3 niveles que son la linea marca y modelo y con base a la selección del usuario, debemos presentar la información.
Mi consulta:
1
2
3
4
5
6
7
8
declare @lineaAuto varchar(500)='Lujo',
declare @marcaAuto varchar(500)='Ferrari',
declare @modeloAuto varchar(500)='Austero',
Select A.Linea,A.Marca,A.Modelo from Autos A
WHERE A.Linea IN(@lineaAuto)
AND A.Marca IN(@marcaAuto)
AND A.Modelo IN(@modeloAuto)
Muchos saludos
Valora esta pregunta


0