2013-08-12 114 views
0

我有一個數據庫表,其中包含列SLA違反。此列(int)由僅表示小時的數字(例如25,70,30,...)組成。SSIS條件拆分小數

在SSIS我有一個條件性拆分格式「違反SLA/8 < 2」 意思除以8的SLA違約行數和設定的條件。基於幾個條件,我以後創建了派生列。

的條件爲這樣:

ISNULL(SLA_Breach)
SLA_Breach/8 < = 2
SLA_Breach> 2 & & SLA_Breach/8 < = 5
SLA_Breach> 5 & & SLA_Breach/8 < = 10
SLA_Breach/8> 10

對於每種情況,都有派生列僅根據條件分配ID(9,1,2,3,4)。

的例子:
的違反SLA爲23基於該條件(23/8)是結果2875的,所以第三個條件應適用和ID 2應分配給衍生柱上。但是,在數據庫表中,將ID 1分配給此行(第二個條件),因爲它不考慮小數。
另一個SLA違規的示例是24行。 24/8是3,所以第三個條件被應用並且分配了正確的ID。

所以問題不是SSIS不考慮小數。這可以如何解決?

由於

回答

1

商店SLA_Breach/8的結果成十進制類型的派生列,然後執行條件檢查。

decSLA_Breach = (DT_DECIMAL,2) SLA_Breach/8 
+0

謝謝,就是這樣。我已經把它寫成「((DT_DECIMAL,2)SLA_Breach/8)<= 2」並且它工作正常。 – DNac