0

我有一个包含 SLA Breach 列的数据库表。此列 (int) 仅由表示小时的数字(例如 25、70、30...)组成。

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

条件如下:

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 Breach 为 23。基于条件 (23/8) 为结果 2,875,因此应应用第三个条件并将 ID 2 分配给派生列。但是,在 DB 表中,此行(第二个条件)分配了 ID 1,因为它不考虑小数。
SLA Breach 为 24 的另一个示例可以正常工作。24/8 是 3,因此应用了第三个条件并分配了正确的 ID。

所以问题不在于 SSIS 不考虑小数。这怎么可能解决?

谢谢

4

1 回答 1

1

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

decSLA_Breach = (DT_DECIMAL,2) SLA_Breach / 8
于 2013-08-12T08:48:45.593 回答