使用日期范围作为目标表达式的一部分,在2个​​数据集之间进行ssrs lookupset

时间:2018-11-19 21:18:15

标签: visual-studio-2012 reporting-services

我有2个SQL数据库正在提取数据。我无法跨服务器查询或在SQL中合并此数据,因此我需要拥有2个单独的数据集并在2个数据集之间执行Join / Lookupset。

第一个数据集具有订单/代理商数据。 第二数据集具有呼叫日志信息。 (通话数据与订单数据没有任何关联,因此我将通话的电话号码“加入”到订单中的电话号码。)

我想做的是提供座席说特定任务发生之日的电话号码收到的所有呼叫。

我需要加入3个领域,电话,日期和代理商。通过将连接的每一侧的3个字段串联起来,然后从第二个数据集中返回我想要的值,我可以做到这一点。

=join(LookupSet(Fields!in_phone.Value  + Fields!CPCCC_Date.Value + Fields!CPCCC_CompBy.Value, Fields!phone_join.Value  + Fields!Rec_Date.Value + Fields!ad_username.Value , Fields!ident.Value, "CallRecorder"), vbCRLF)

此代码仅适用于文件并在同一日期完成调用和任务时返回我要查找的ident值。

现在,我被要求通过查找在任务完成前3天或之前发生的任何呼叫来增强此功能。

这就是我所困的地方,如何使用日期范围作为表达式的一部分。

我目前在SQL中针对两个数据集所做的工作是计算日历周并可以使用日历周代替日期范围,但是对于星期五完成的任务,我可以包括星期一而不是星期三发生的调用星期五。

这是我按周匹配的代码:

=join(LookupSet(Fields!in_phone.Value  + Fields!CPCCC_WK.Value + Fields!CPCCC_CompBy.Value, Fields!phone_join.Value  + Fields!Rec_WK.Value + Fields!ad_username.Value , Fields!ident.Value, "CallRecorder"), vbCRLF)

vbCRLF会在每个返回值之间创建一个换行符,因为同一天可能有多个调用。

CPCCC_Date 是我在第一个数据集中的任务完成日期。 Rec_Date 是通话日期。

在SQL中为第二个数据集创建一个 Rec Date-3 days值就足够容易了(我还有一个Business Days函数,可以在SQL中使用该函数来获取日期,而不是SSRS)。

因此,如果任务在13日(星期五)完成,我想在10日至13日(而不是8日-13日)回电。

因此,添加一个字段可以拉动这两个数据集的日历周并进行匹配,但确实可以,但是我想看看是否有人能够将范围用作表达式的一部分,这样我就可以拨入更好地满足了要求。

0 个答案:

没有答案