3 つの入力例を使用して livereport を作成します。
- ドキュメント開始日
- ドキュメントの終了日
- 従業員 ID
これらは、SQL テーブル DocumentData の 3 つの行です。
再現したいのは以下です。
ユーザーが「Emp ID」フィールドに値を入力しない場合、すべての「ドキュメント開始日」と「ドキュメント終了日」が表示されます。それ以外の場合は、その「Emp ID」に対応する値のみを表示する必要があります。
非常に単純かもしれませんが、それでもクエリが必要です。
を使用してOR
、値をクエリに 2 回渡します。
一般的なクエリ コード (livelink が呼び出しを行う方法がわからない)
SELECT * FROM DOCUMENT
WHERE CREATED_DATE BETWEEN $startDate AND $endDate
AND (EMP_ID = $empId OR $empId IS NULL)
おそらくこれが解決策になる可能性があります:
-- should work perfectly
select *
from DocumentData
where
case
when :emp_id is null then 1 -- attention :emp_id introduced in stead of emp_id
when emp_id = :emp_id then 1
else 0
end = 1
は:emp_id
、アプリケーションから取得される変数 (ユーザーによって変更されるフィールド) である必要があります。文中の は条件として機能し1
ます。case when
true