Sql Server Report Builder 计算标准偏差

话不多说,上才艺!

为了实现这个功能,类似于excel的STDEV()方法,我们需要写一个自定义函数,(报表属性=》代码)
因为我的数据里面有的值为“NAN”,所以我需要排除掉这些数据,排除的方法参照:去除NAN数据

接下来就是计算标准偏差了

#region "根据传入的数据集计算相对标准偏差"
public function getStandardDeviation(dataArr as Object()) as string
	dim temp() as Object
	dim length as integer
	temp=arrayCheck(dataArr,"NAN")
	if(IsNothing(temp)) then
		return "NAN"
	else
		length=temp.length
	end if
	if(length=1) then
		return temp(0)
	end if
	dim std as double
	dim dataAvg as double=0
	dim quadratic as double =0
	dim ias long
	for i=0 to length-1
		dataAvg=dataAvg+CDbl(temp(i))/length
	next i
	dim j as long
	for j=0 to length-1
		quadratic=quadratic+((CDbl(temp(j))-dataAvg)^2/(length-1))
	next j
	std=Sqrt(quadratic)
	if(Instr(CStr(std),".")>0) then
		return mid(CStr(std),1,Instr(CStr(std),".")+3)
	else
		return CStr(std)
	end if
end function
#end region

接下来就是调用所写的函数,获取需要计算的数据集所用的方法是:LookupSet()
语法:

=Code.getStandardDeviation(LookupSet(Fields!Product.Value,Fields!Product.Value,Fields!ActualBCT.Value,"DataSet_Data"))

以上就是本章所有内容,希望对您有所帮助!

开心也是一天,不开心也是一天,何必不开心,来,笑^_^

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值