SQL 针对多个表的 Spotfire 查询过滤问题

SQL to Spotfire query filtering issue with multiple tables

我正在尝试计算流入和流出成本中心的小时数。当成本中心借出一名员工一个小时时,它是 +1,而当他们借用一名员工一个小时时,它是 -1。

现在我使用的查询是

select
     columns
from dbo.table
where EmployeeCostCenter <> ProjectCostCenter

所以当 ProjectCostCenter = ID_CostCenter 它 returns +HoursQuantity。 然后我更新 ID_CostCenter = EmployeeCostCenter 然后 ID_CostCenter = EmployeeCostCenter 采取 -HoursQuantity.

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

如果需要,我可以上传实际代码,但我使用了 4 个查询,其中有几个非常冗长。我认为只有主要 table、计算进入时间的临时 table 和计算离开时间的临时 table 是唯一涉及此问题的问题。

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

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

列匹配不是相关列,而是与每个可视化中的聚合、类别轴等相关联。因此,如果 TableA 有 "amount" 和 TableB 有 "amount debit" 并且你想在表达式中使用这两个,比如 Sum([TableA].[amount],[TableB].[amount debit]),它们需要 匹配 为了不产生错误的结果。

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