1

我目前有一个在 Ignition 中运行的 SQL 查询。如果我选择特定区域,它可以正常工作。问题是我想给它添加一个“ALL”。如果它具有“全部”选择​​,我希望能够忽略区域作为条件。

我不确定这是否可以通过 SQL 查询来处理。我正在对下拉列表运行查询以使用区域填充它。

这是我的代码:

SELECT *
FROM jobrecord
where
    jobopendate >= '{Root Container.Group 5.Group 3.Popup Calendar.date}' AND
    jobopendate <= '{Root Container.Group 5.Group 3.Popup Calendar 1.date}' AND
    area = '{Root Container.Group 5.Group 3.Dropdown 9.selectedLabel}'
ORDER BY jobnumber
4

2 回答 2

1

谢谢你!

我的最终代码:

declare @Area nvarchar(max) = '{Root Container.Group 5.Group 3.Dropdown 9.selectedLabel}' 

SELECT *
FROM jobrecord
where
    (@Area = 'ALL' and (jobopendate >= '{Root Container.Group 5.Group 3.Popup Calendar.date}' AND
    jobopendate <= '{Root Container.Group 5.Group 3.Popup Calendar 1.date}') or
    (area = @Area and jobopendate >= '{Root Container.Group 5.Group 3.Popup Calendar.date}' 
    and jobopendate <= '{Root Container.Group 5.Group 3.Popup Calendar 1.date}'))
ORDER BY jobnumber
于 2020-08-24T18:12:58.780 回答
1

您需要使用orwhere 子句条件。

如果您传递@Area作为所有此脚本将返回所有区域。如果您传递一个特定值,那么它将过滤到该区域值。

declare @Area nvarchar(max) = 'someArea' 

SELECT *
FROM jobrecord
where
    (@Area = 'ALL' or (jobopendate >= '{Root Container.Group 5.Group 3.Popup Calendar.date}' AND
    jobopendate <= '{Root Container.Group 5.Group 3.Popup Calendar 1.date}' AND
    area = @Area))
ORDER BY jobnumber
于 2020-08-24T17:23:20.870 回答