SSIS条件性分裂小数

时间:2013-08-12 08:02:21

标签: ssis

我有一个包含列SLA违规的数据库表。该列(int)由仅表示小时数(例如25,70,30,......)组成。

在SSIS中我有一个条件分割,格式为“SLA违反/ 8 <2” 意味着将SLA违反行号除以8并设置条件。基于几个条件,我之后创建了派生列。

条件如下:

  
    

ISNULL(SLA_Breach)
    SLA_Breach / 8&lt; = 2
    SLA_Breach&gt; 2&amp;&amp; SLA_Breach / 8&lt; = 5
    SLA_Breach&gt; 5&amp;&amp; SLA_Breach / 8&lt; = 10
    SLA_Breach / 8&gt; 10

  

对于每个条件,都有一个派生列,只根据条件分配ID(9,1,2,3,4)。

示例:
SLA违规是23.基于条件(23/8)是结果2,875,因此应该应用第三个条件,并且应该将ID 2分配给派生列。但是,在DB表中,为该行分配了ID 1(第二个条件),因为它没有考虑小数 SLA违反24的另一个例子可以正常工作。 24/8为3,因此应用了第三个条件并分配了正确的ID。

所以问题不在于SSIS没有考虑小数。如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:1)

将SLA_Breach / 8的结果存储到十进制类型的派生列中,然后进行条件检查。

decSLA_Breach = (DT_DECIMAL,2) SLA_Breach / 8