0

3 つの入力例を使用して livereport を作成します。

  1. ドキュメント開始日
  2. ドキュメントの終了日
  3. 従業員 ID

これらは、SQL テーブル DocumentData の 3 つの行です。

再現したいのは以下です。

ユーザーが「Emp ID」フィールドに値を入力しない場合、すべての「ドキュメント開始日」と「ドキュメント終了日」が表示されます。それ以外の場合は、その「Emp ID」に対応する値のみを表示する必要があります。

非常に単純かもしれませんが、それでもクエリが必要です。

4

2 に答える 2

2

を使用してOR、値をクエリに 2 回渡します。

一般的なクエリ コード (livelink が呼び出しを行う方法がわからない)

SELECT * FROM DOCUMENT
WHERE CREATED_DATE BETWEEN $startDate AND $endDate
AND (EMP_ID = $empId OR $empId IS NULL)
于 2015-07-14T17:39:15.470 に答える
1

おそらくこれが解決策になる可能性があります:

-- 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 whentrue

于 2015-07-14T17:50:07.497 に答える