2017-04-11 22 views
2

我正在計算流入和流出成本中心的小時數。當成本中心將員工借給一小時時,它是+1,當他們借一小時僱員時,它是-1。SQL到多表的Spotfire查詢過濾問題

現在我使用的是查詢,說

select 
    columns 
from dbo.table 
where EmployeeCostCenter <> ProjectCostCenter 

所以當ProjectCostCenter = ID_CostCenter返回+ HoursQuantity。 然後我更新ID_CostCenter = EmployeeCostCenter然後在哪裏ID_CostCenter = EmployeeCostCenter取-hoursQuantity。

這工作正常。問題是當我將它導入Spotfire時,即使添加了表關係,我也無法在主表上過濾。誰能解釋爲什麼?

如果需要,我可以上傳實際的代碼,但是我使用了4個查詢,其中有幾個查詢非常冗長。主表,計算傳入小時數的臨時表,以及計算傳出小時數的臨時表是我想這個問題中唯一涉及的問題。

+0

您的關係和欄目匹配是如何建立的?我懷疑需要查看列匹配,因爲您可能正在過濾不是關係列的列。 – scsimon

+0

我應該只有1個關係列還是配對所有可能的匹配?我只是希望能夠按月/年進行過濾。現在主表中的數據發生變化,但不是輔助表中的數據。我將發佈關係圖 –

+0

您可能只需要一個關係列,但列匹配也必須關聯,以便Spotfire知道如何處理您的過濾。 – scsimon

回答

0

(移動到回答,以避免長時間的討論)

本質上,數據關係可用於填充過濾/不同的數據集之間的標記。就像在RDBMS中一樣,這種關係是Spotfire用作數據集之間鏈接的關係。本質上,它與您在加入上的一列或多列相同。因此,您希望在TableA中篩選並且在TableB中限制結果集的任何列(或反之亦然)必須是關係。

列匹配不是相關的列,而是與每個可視化中的聚合,類別軸等相關聯。因此,如果TableA具有「金額」且TableB具有「金額借記」並且您希望在表達式中使用這兩個表示,例如Sum([TableA].[amount],[TableB].[amount debit]),則它們需要與匹配以便不會產生錯誤的結果。

最後,一旦建立了關係,您應該檢查過濾器面板以設置過濾的工作方式。您可以將行一起包括,排除或忽略。 Here is a link解釋說。