0

我将使用三个示例输入创建一个实时报告:

  1. 文件开始日期
  2. 文件结束日期
  3. 员工编号

这些是 SQL 表 DocumentData 中的 3 行。

我要重现的是以下内容:

如果用户没有在“Emp ID”字段中输入任何值,它应该显示所有“文档开始日期”和“文档结束日期”。否则,仅应显示与该“Emp ID”对应的值。

这可能很简单,但我仍然需要查询。

4

2 回答 2

2

使用 anOR并将值传递给查询两次。

在通用查询代码中(不知道 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 when条件true

于 2015-07-14T17:50:07.497 回答