我有以下问题: 案例将使用最新的计算文件计算。案例和计算文件来自两个不同的数据集,没有任何关键元素。
数据集1:
数据集2:
我希望得到以下内容:
对于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.是否有任何有效的工作?
基本上,这个想法适用于每个案例,过滤使用过的计算文件:早于案例创建时间,然后,选择最新的使用的计算值
如果我没有正确解释,请询问进一步的说明。感谢。
答案 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