Consulta con case when en un and

Soy Caludia a ver si me ayudas con esta "marihuanada". Tengo una db sql 2000 server std la cual tiene una tabla ARTÍCULOS la cual la exploto muy fácil con SELECT * from ARTÍCULOS where alm='M01' and clave in (3,6,9) y listo ! Me arroja los 3 articulo con código puesto dentro del IN. Pero resulta que ahora, mi tabla que NO tiene y NO debe tener un campo nuevo que almacene la agrupación comercial si lo requiere y me dieron los siguientes grupos: DULCES (códigos 1,2,3,4,5), MEDICAMENTOS (códigos 9,7,11,15), LICORES (códigos 200,201,202), DESECHABLES (códigos 111,120,150), etc.
Lo que requiero ahora es que en base al GRUPO que se desee mostrar solo esos códigos sean los que arroje mi Query. Tengo esto: SELECT * FROM ARTÍCULOS WHERE ALM='M01' AND CLAVE IN (dependiendo de que grupo se elija mostrar los artículos si se elije grupo DULCES mostrar los códigos 1,2,3,4,5 si elijen el grupo MEDICAMENTOS mostrar los códigos 9,7,11,15) usé un case when pero me marca error y ya me desesperé.
¿Me ayudas por favor? ¿Siiiii? :)

1 respuesta

Respuesta
1
¿Bueno te pego la consulta como creo que debería ser a ver si así te sirve vale? Sino dímelo y revisamos a ver:
SELECT *
FROM Articulos
WHERE Alm='01' AND Clave IN (
     CASE Clave_elegida
         WHEN 'Dulces' THEN '1,2,3,4,5'
         WHEN 'Medicamentos' THEN '9,7,11,15'
         WHEN 'Licores' THEN '200,201,202'
         WHEN 'Desechables' THEN '111,120,150'
     END
)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas