【问题标题】:SQL to Spotfire query filtering issue with multiple tables多个表的 SQL 到 Spotfire 查询过滤问题
【发布时间】:2017-09-06 21:54:38
【问题描述】:

我正在尝试计算流入和流出成本中心的小时数。当成本中心将员工借出一小时时为 +1,当他们借出员工一小时时为-1。

现在我使用的查询是

select
     columns
from dbo.table
where EmployeeCostCenter <> ProjectCostCenter

所以当 ProjectCostCenter = ID_CostCenter 时它返回 +HoursQuantity。 然后我更新 ID_CostCenter = EmployeeCostCenter 然后在哪里 ID_CostCenter = EmployeeCostCenter 采取 -HoursQuantity。

效果很好。问题是当我将它导入 Spotfire 时,即使添加了表关系,我也无法在主表上进行过滤。谁能解释一下为什么?

如果需要,我可以上传实际代码,但我使用了 4 个查询,其中一些查询相当冗长。我认为只有主表、一个用于计算传入小时数的临时表和一个用于计算外出小时数的临时表。

【问题讨论】:

  • 您的关系和列匹配是如何设置的?我怀疑需要查看列匹配,因为您可能正在过滤不是关系列的列。
  • 我应该只有 1 个关系列还是对所有可能的匹配项进行配对?我只想能够按月/年过滤。现在主表中的数据发生了变化,但我的辅助表中的数据没有变化。我会发布关系的图片
  • 您可能只需要一个关系列,但列匹配项也必须关联,以便 Spotfire 知道如何处理您的过滤。
  • 所以我可以有一个关系列,只要其余的正确配对,它应该可以工作吗?另外,感谢您一直回答我的问题

标签: sql sql-server dashboard calculated-columns spotfire


【解决方案1】:

(为了避免冗长的讨论,转而回答)

本质上,数据关系用于填充不同数据集之间的过滤/标记。就像在 RDBMS 中一样,关系是 Spotfire 用作数据集之间的链接。本质上,它与您加入 的列或列相同。因此,您希望在 TableA 中过滤并在 TableB 中限制结果集(反之亦然)的任何列都必须是关系。

列匹配不是相关列,而是与每个可视化中的聚合、类别轴等相关联。因此,如果 TableA 有“金额”而 TableB 有“借方金额”,并且您想在表达式中同时使用这两者,比如 Sum([TableA].[amount],[TableB].[amount debit]),则它们需要匹配,以免产生错误结果。

最后,一旦您设置了关系,您应该检查您的过滤器面板以设置您希望过滤器的工作方式。您可以同时包含、排除或忽略这些行。 Here is a link 解释。

【讨论】:

    猜你喜欢
    • 2013-01-01
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    相关资源
    最近更新 更多