我写的以下代码找到了。输出我期望的结果。
select distinct
mi_tm.st_event_time,
mi_tm.st_location,
mi_tm.st_log_class,
mi_tm.st_qty,
mi_tm.st_reason,
mi_tm.st_reason_data,
mi_tm.st_sku_code,
mi_tm.st_ulid,
mi_tm.st_user_id,
x_prod.description,
x_supplier.supplier_name
from
mi_tm, x_prod,
x_igd, x_supplier
where
mi_tm.st_date >= {?Start} and
mi_tm.st_date <= {?End} and
mi_tm.st_sku_code = x_prod.prod_code (+) and
mi_tm.st_sku_code = x_igd.prod_code (+) and
x_igd.supplier_no = x_supplier.supplier_no (+) and
mi_tm.st_sku_code like '{?SKU}' and
mi_tm.st_log_class in ('TM_ADJUST_QTY', 'TM_CREATE', 'TM_DELETE')
然而对于这一行
mi_tm.st_sku_code like '{?SKU}' and
我希望它能够期望一个通配符参数,它将返回日期之间运行的所有值。只是查询%似乎导致我的报告崩溃。我试过添加&#39;%&#39;围绕参数。但我得到一个无效的数字错误,或SQL没有正确结束。我对此问题的任何帮助表示感谢。
编辑:将其放在底部
If {?SKU} = '*' then
mi_tm.st_sku_code like '*'
else mi_tm.st_sku_code like '{?SKU}'