【问题标题】:Nested IIF/Lookup嵌套 IIF/查找
【发布时间】:2018-07-03 15:25:34
【问题描述】:

我是 SQL、SSRS 和报表生成器的新手。

我正在尝试比较三个单独的数据集 1. poreceipts(这是公司收到的所有采购订单和物品) 2. moat(这是在项目级别可用的所有描述性数据)和 3. production(这是包含项目和使用信息的数据转储,因此它与其他两个数据集有很多重叠)。

我首先需要做的是创建一个函数,它可以让我检查 ITEM_ID.Value(来自 poreceipts)和 Sku.Value(来自 moat)并返回 Series_Desc.Value(来自 moat)。看起来像这样:

=Lookup(Fields!ITEM_ID.Value, Fields!Sku.Value, Fields!Series_Desc.Value, "moat")

不幸的是,许多项目的 Series_Desc 字段为空白。这就是第三个数据集的来源。我需要能够检查该值是否为空白,如果不是,则返回 Series_Desc.Value ... 如果为空白,则我需要针对 BASE_ITEM 查找 ITEM_ID.Value .Value(来自数据集生产)以返回 COATED_ITEM_ID.Value(再次来自数据集生产),然后需要使用它来查找 Sku.Value 并返回 Series_Desc.Value(来自护城河)。

唷......那是一口,希望它有点清楚。

提前谢谢大家!

-K

【问题讨论】:

    标签: function reporting ssrs-tablix reportbuilder


    【解决方案1】:

    如果我理解正确,那么您只需要一个数据集并让数据库服务器为您进行查找。您的数据集的查询应该看起来有点类似于:

    SELECT po.*, ISNULL(m.Series_Desc, m2.Series_Desc) AS Series_Desc
    FROM poreceipts po
      LEFT OUTER JOIN moat m ON po.ITEM_ID = m.Sku
      LEFT OUTER JOIN poreceipts b ON po.BASE_ITEM = b.ITEM_ID
        LEFT OUTER JOIN moat m2 ON b.COATED_ITEM_ID = m2.Sku;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-19
      • 2021-11-26
      • 1970-01-01
      相关资源
      最近更新 更多