Generar filtro independiente y dependiente?

image

como puedo generar un filtro por uno de esos dos campos,pero a la ves hacer otro filtro con esos dos campos llenos?

así es como tengo el código actual. pero al llenar los dos campos me marca error. si pongo el filtro por solo un campo de esos que marque si me corre el código.

where T1.[Quantity] != 0 and T1.[WhsCode] between [%1] and [%2] or (T1.[itemcode] = [%3] and T1.[WhsCode] = [%4])

Hola

¿puedes publicar la consulta entera?

Agustín

1 me gusta
SELECT	
            T0.ItemCode as 'ID Articulo',
            T0.ItemName as 'Descripcion',
            T1.BatchNum as '# Lote',
            T1.WhsCode as 'ID Almacen',
            T1.Quantity as 'Cantidad',
            T0.InvntryUom as 'Uom Inventario',
            T0.Lastpurprc as 'Precio OITM',
            T0.Lastpurcur as 'Moneda',
            (T1.Quantity * T0.Lastpurprc) as 'Valor de inventario'
from OITM T0
inner join OIBT T1 ON T0.ItemCode = T1.ItemCode
where T1.Quantity != 0 and T1.WhsCode  between [%1] and [%2] or (T1.itemcode = [%3] and T1.WhsCode = [%4])`Texto preformateado`

Podrías detallar mas el error que te sale, disculpa pero no comprendo lo que quieres hacer, saludos

Hola, difícilmente (al menos yo no conozco como ) puedes heredar filtros en una consulta hecha en el Query Manager.

Tienes una incongruencia en la declaración del where ya que colocas un between para indicar el rango de almacén a almacén y vuelves a preguntar el almacén en la variable [%4], para que esto sea funcional deberás colocar una variable mas de tipo decisión para determinar cuando utilizarás las variables [%1] y [%2] y cuando las variables [%3] y [%4]

Yo te recomendaría hacer un informe y con ayuda de tokens heredar el filtro que necesites, aquí un vídeo que habla de ello, espero sea de utilidad.

Saludos

1 me gusta

image
tengo una tabla con ciertos datos y quiero generar filtros por columna. ya tengo 4 filtros uno por rango que son los primeros dos filtros;

T1.WhsCode between [%1] and [%2]
*Codigo de almacen
*Codigo de almacen

y otros dos, por valores iguales;
(T1.itemcode = [%3] and T1.WhsCode = [%4])
*numero de articulo
*código de almacén
en estos filtros es donde quiero que haga lo que digo, si solo pongo un filtro en numero de articulo me haga el filtro sin necesidad de llenar el filtro por código de almacén.
Actualmente si lleno solo uno de esos filtros me arroja un mensaje que dice no se encontraron datos.
image

Entonces la consulta esta bien, pensé que te arrojaba un error, mas bien esa condición no se esta cumpliendo en ningún momento, o tal vez el problema sea en tus inner o la otra es que debes colocar tal cual esta en los campos la información ya que estas manejando el =

Exacto, solo me funciona cuando lleno los dos campos.

Tienes como lo dijo el compañero @pcarrasco incongruencia, estas solicitando datos repetidos en el query, T1.WhsCode no comprendo porque lo estas repitiendo en el valor [%1] [%2] y [%4]

Lo que esta en azul me funciona perfecto:

No se si lo que quieres en realidad es delimitar un rango desde el almacén x al z, y desde el articulo aa al cc por ejemplo. inténtalo así si quieres que se cumplan las dos condiciones si no solo cambia al or

SELECT	
            T0.ItemCode as 'ID Articulo',
            T0.ItemName as 'Descripcion',
            T1.BatchNum as '# Lote',
            T1.WhsCode as 'ID Almacen',
            T1.Quantity as 'Cantidad',
            T0.InvntryUom as 'Uom Inventario',
            T0.Lastpurprc as 'Precio OITM',
            T0.Lastpurcur as 'Moneda',
            (T1.Quantity * T0.Lastpurprc) as 'Valor de inventario'
from OITM T0
inner join OIBT T1 ON T0.ItemCode = T1.ItemCode
where T1.Quantity != 0 and (T1.WhsCode  between [%1] and [%2]) and /*or*/ (T1.itemcode between [%3] and [%4])

Funciono

ya quedo muchas gracias por la ayuda. me funciona perfecto

2 Me gusta