Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssis 在表达式中计算十进制整数变量值_Ssis - Fatal编程技术网

Ssis 在表达式中计算十进制整数变量值

Ssis 在表达式中计算十进制整数变量值,ssis,Ssis,我在SSIS中有一个场景,我在rowcount转换中使用@BadRecordCount来计算坏记录,在rowcount转换中使用@TotalRecordCount来计算总记录。我需要计算错误百分比。为此,我声明了另一个变量@ErrorPercentage,并使用表达式-@[User::RowCountBad]*100/@[User::TotalRecordsCount] 表达式的计算结果很好,但未给出十进制值 我尝试将变量数据类型更改为double,但它仍将其作为整数进行计算 我尝试将变量值更改

我在SSIS中有一个场景,我在rowcount转换中使用@BadRecordCount来计算坏记录,在rowcount转换中使用@TotalRecordCount来计算总记录。我需要计算错误百分比。为此,我声明了另一个变量@ErrorPercentage,并使用表达式-@[User::RowCountBad]*100/@[User::TotalRecordsCount]

表达式的计算结果很好,但未给出十进制值

我尝试将变量数据类型更改为double,但它仍将其作为整数进行计算

我尝试将变量值更改为字符串,并抛出一个错误,表示指定的数据类型中不允许使用“*”,这意味着我不能在表达式中乘法

最后,我尝试将@BadRecordCount和@TotalRecordCount变量数据类型与@ErrorPercentage一起更改为double。现在,它使用decimal求值,这正是我想要的,但当我运行包时,它无法将@BadRecordCount和TotalRecordCount更改为INT,因为rowcount转换正在使用它们

我想举个例子:

@[User::RowCountBad]=10000和@[User::totalrecordscont]=143000,那么作为计算,它给了我6.993006993006993

根据上面的表达式,它只给我6,但我需要6.99(最多2位小数)


感谢您的帮助

SSIS表达式非常痛苦-没有隐式转换

我想试试这样的东西:


(DT_NUMERIC,10,2)@[User::RowCountBad]*(DT_NUMERIC,10,2)100/(DT_NUMERIC,10,2)@[User::TotalRecordsCount]

您在哪里计算错误百分比?这是否在数据流任务的派生列中?它是变量上的表达式吗?这是.NET代码吗?