我正在使用Oracle 10g。表单中包含3个字段:
from date
To date
Customer
我有一个包含customer
,delivery no
和date
的表格。我要显示以下情况的报告:
from
和to date
-然后显示所有详细信息,而与customer
名称无关customer
的名称-然后显示基于customer
的详细信息,而不考虑日期from date
,to date
和customer
-然后显示该日期的customer
的详细信息我必须根据这些情况向报告显示如何编写该查询。
我将从表单中将值传递给报表构建器
SELECT A.DEL_NO,
A.DEL_DATE,
A.CONS_ADDR
FROM ITBG_DELCHELLAN A
where A.oano is null
and A.DEL_date between :sdate and :edate
OR UPPER(A.cons_addr) like '%'||:adr||'%';
其中sdate
是from date
,edate
是to date
和adr
是customer
。
答案 0 :(得分:1)
我想你想要
SELECT A.DEL_NO,
A.DEL_DATE,
A.CONS_ADDR
FROM ITBG_DELCHELLAN A
WHERE A.oano is null
AND ( :sdate IS NULL OR :edate IS NULL OR A.DEL_date BETWEEN :sdate AND :edate )
AND ( :adr IS NULL OR UPPER(A.cons_addr) LIKE '%'||:adr||'%' )
-- Prevent returning everything if neither option is given.
AND ( ( :sdate IS NOT NULL AND :edate IS NOT NULL ) OR :adr IS NOT NULL )