SSRS查找最近的日期/时间

时间:2016-01-29 16:44:26

标签: reporting-services

我有以下问题: 案例将使用最新的计算文件计算。案例和计算文件来自两个不同的数据集,没有任何关键元素。

数据集1:

数据集2:

enter image description here

我希望得到以下内容:

enter image description here

对于1月12日和1月27日创建的案例,他们使用了1月12日上传的计算文件。然后在1月28日上传了一个新文件。在1月29日创建的新案例使用了这个最新的计算文件。

现在,我的表达式是生成使用的计算文件

我在数据集2中添加了行号。要获取使用的计算文件,我有

  

= iif(LookUp(1,Fields!Row.Value,Fields!File_Upload_Time.Value,“Dataset 2”)<(Fields!Case_Created_Time.Value,“Dataset 1”),LookUp(1,Fields!Row。 Value,Fields!Completed.Value,“CoreJob”),iif(LookUp(2,Fields!Row.Value,Fields!Completed.Value,“CoreJob”)<(Fields!Case_Created_Time.Value,“Dataset 1”), LookUp(2,Fields!Row.Value,Fields!Completed.Value,“CoreJob”),iif(LookUp(3,Fields!Row.Value,Fields!Completed.Value,“CoreJob”)<(Fields!Case_Created_Time。值,“数据集1”),LookUp(3,Fields!Row.Value,Fields!Completed.Value,“CoreJob”),iif(LookUp(4,Fields!Row.Value,Fields!Completed.Value,“CoreJob”) )<(Fields!Case_Created_Time.Value,“Dataset 1”),LookUp(4,Fields!Row.Value,Fields!Completed.Value,“CoreJob”),0))))

它现在完成了这项工作,但是数据集2中会有很多行,我不能使用上面的内容来查找行N.是否有任何有效的工作?

基本上,这个想法适用于每个案例,过滤使用过的计算文件:早于案例创建时间,然后,选择最新的使用的计算值

如果我没有正确解释,请询问进一步的说明。感谢。

1 个答案:

答案 0 :(得分:0)

我建议更改数据集(如果可能),而不是在报告本身上尝试这种类型的比较;您可以使用APPLY operator之类的:

SELECT ct.CaseId, ct.CreatedTime, CalcFile.UsedCalcValue
FROM CaseTable AS ct 
    CROSS APPLY(SELECT TOP 1 cft.UsedCalcValue
                FROM CalcFileTable AS cft
                WHERE ct.CreatedTime >= cft.UsedCalcValue
                ORDER BY cft.UsedCalcValue DESC) AS CalcFile