[存储过程]sql server 中 统计一条记录中 非空 字段个数 ,并且计算它所占百分比

integrity


是表中存放非空字段百分比 的字段

companyName

等字段是参与统计的成员


看代码


 
drop procedure update_company_intergrity
;
create procedure update_company_intergrity @id int
as

update manager_company   set integrity =
(
SELECT 
	(
	len(rtrim(ltrim(SubString(isnull(companyName,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(productFirstType_ID,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(linkManName,''),1,1))))
 	+len(rtrim(ltrim(SubString(isnull(linkManPost,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(companyTel,''),1,1))))
 
	+len(rtrim(ltrim(SubString(isnull(companyAdr,''),1,1))))
  +len(rtrim(ltrim(SubString(isnull(companyMobile,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(companyFax,''),1,1))))
 	+len(rtrim(ltrim(SubString(isnull(companyHomepage,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(companyDelegate,''),1,1))))

	+len(rtrim(ltrim(SubString(isnull(companyDelegateCall,''),1,1))))
  +len(rtrim(ltrim(SubString(isnull(companyMobile,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(companyBusinessModel,''),1,1))))
 	+len(rtrim(ltrim(SubString(isnull(companyArea,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(companyIntroduction,''),1,1))))

	+len(rtrim(ltrim(SubString(isnull(businessRegistrationNumber,''),1,1))))
  +len(rtrim(ltrim(SubString(isnull(registeredCapital,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(enterpriseType,''),1,1))))
 	+len(rtrim(ltrim(SubString(isnull(registeredDate,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(registeredAuthority,''),1,1))))

	+len(rtrim(ltrim(SubString(isnull(inspectionDate,''),1,1))))
  +len(rtrim(ltrim(SubString(isnull(companyScale,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(style_ID,''),1,1))))
 	+len(rtrim(ltrim(SubString(isnull(mainProducts,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(province,''),1,1))))

	+len(rtrim(ltrim(SubString(isnull(city,''),1,1))))
  +len(rtrim(ltrim(SubString(isnull(manageRange,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(turnoverOfYear,''),1,1))))
 	+len(rtrim(ltrim(SubString(isnull(postalcode,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(stapleMarket,''),1,1))))

	+len(rtrim(ltrim(SubString(isnull(openBank,''),1,1))))
  +len(rtrim(ltrim(SubString(STR(isnull(isOfferProcessAndService,'')),1,1))))
	+len(rtrim(ltrim(SubString(isnull(importOfYear,''),1,1))))
 	+len(rtrim(ltrim(SubString(isnull(exitOfYear,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(researchNum,''),1,1))))

	+len(rtrim(ltrim(SubString(isnull(outputOfMonth,''),1,1))))
 
  
  +len(rtrim(ltrim(SubString(isnull(mainIndustry,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(registerAdr,''),1,1))))
 	+len(rtrim(ltrim(SubString(isnull(mainCustom,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(mainManagePlace,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(mangerBrand,''),1,1))))

  +len(rtrim(ltrim(SubString(isnull(bankNum,''),1,1))))
	+len(rtrim(ltrim(SubString(isnull(qualityControl,''),1,1))))
 	+len(rtrim(ltrim(SubString(isnull(areaNum,''),1,1))))
	+len(rtrim(ltrim(SubString(STR(isnull(certificateNum,'')),1,1))))
	+len(rtrim(ltrim(SubString(isnull(effectTime,''),1,1))))
	 )
	 *100/45
FROM manager_companydetails 
where  rtrim(ltrim(manager_companydetails.id)) = rtrim(ltrim(@id))
)
where rtrim(ltrim(manager_company.id)) = rtrim(ltrim(STR(@id)))
 
;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值