【问题标题】:SSRS - where ... is no more than 30 minutes longer thanSSRS - 其中 ... 不超过 30 分钟
【发布时间】:2013-07-09 15:30:26
【问题描述】:

我希望它仅在 i.ClosedDate 比 e.eCreationTime 多 0 到 30 分钟时显示

因此,如果 i.ClosedDate 比 e.eCreationTime 多 30 分钟以上,则不会显示

抱歉,我很难解释。

select e.eMapName
, e.eFolderName
, i.Status
, i.AssignedTo
, i.ClosedDate
, e.eCreationTime

From ework.eFolder e inner join ework.Incident_Management i
on e.eFolderID = i.eFolderID

我想添加一个 WHERE,以便仅在 i.ClosedDate 比 e.eCreationTime 多 30 分钟(或更少)时显示

【问题讨论】:

  • 您确实没有提供足够的上下文来回答这个问题。您的查询有问题吗?是否要将过滤器应用于数据集或报告中的其他位置?到目前为止,您尝试过什么?
  • 您尝试过什么,您使用的是什么数据库服务器?您可以发布您当前的代码吗?
  • 抱歉,我很难解释。 select e.eMapName , e.eFolderName , i.Status , i.AssignedTo , i.ClosedDate , e.eCreationTime From ework.eFolder e inner join ework.Incident_Management i on e.eFolderID = i.eFolderID 我想添加一个 WHERE,以便仅在 i.ClosedDate 为 30 分钟(或更短)时显示超过 e.eCreationTime
  • 我尝试了过滤选项,但无法完全正确地使用表达式
  • @Billo 我已经更新了我的答案,以便它可以帮助您处理 SQL。

标签: sql reporting-services


【解决方案1】:

您可以使用DATEDIFF 将类似以下内容放入表达式中,以显示您尝试隐藏或显示的任何报告元素:

=DATEDIFF("Minute", e.eCreationTime, i.ClosedDate) <= 30

或者更明确一点:

=IIF(DATEDIFF("Minute", e.eCreationTime, i.ClosedDate) <= 30, True, False)

更新:

我现在看到您正在寻找 T/SQL 中的 WHERE 子句。好吧,幸运的是还有一个DATEDIFF function in T/SQL(与 SSIS 表达式编辑器中的那个分开):

select e.eMapName,
e.eFolderName,
i.Status,
i.AssignedTo,
i.ClosedDate,
e.eCreationTime
from ework.eFolder e 
inner join ework.Incident_Management i
on e.eFolderID = i.eFolderID
where datediff(minute, e.eCreationTime, i.ClosedDate) <= 30

这有帮助吗?

【讨论】:

    猜你喜欢
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    相关资源
    最近更新 更多