繁体   English   中英

使用计算表达式更新 sql 临时表列

[英]Update sql temp table column with computational expression

我执行下面的 SQL 代码。 尽管计算表达式不是零,但所有行都以零更新,因为在每种情况下附加信息分母都更大。

UPDATE #t
SET ProportionOfvehicle = (CountOfVehicle / @TotalNumberOfPrivateVehicles)*100
WHERE LegalPersonID IS NOT NULL;

我终于可以自己解决问题了。 我创建了一个临时表,其计算字段的数据类型如下所示

**CREATE TABLE #t
(
    CountOfVehicle BIGINT,
    LegalPersonID BIGINT,
    RegionID BIGINT,
    ProportionOfvehicle FLOAT,
    ProportionOfAccident FLOAT,
    ProportionOfPersonel FLOAT
)**

然后将其插入到除计算字段之外的其他字段,代码如下

**INSERT  INTO #t
(
    CountOfVehicle,
    LegalPersonID,
    RegionID,
    ProportionOfvehicle,
    ProportionOfAccident,
    ProportionOfPersonel
)
SELECT COUNT(*) AS CountOfVehicle,
       LegalPersonID,
       RegionID,
       NULL AS ProportionOfvehicle,
       NULL AS ProportionOfAccident,
       NULL AS ProportionOfPersonel
FROM Bus.VehicleOwnerships
WHERE OwnershipTypeValue IN (1,2)
GROUP BY LegalPersonID,
         RegionID** 

最后用下面的语句更新计算字段

**UPDATE #t
SET ProportionOfvehicle = CountOfVehicle / @TotalNumberOfOrganizationVehicles
WHERE RegionID IS NOT NUL**

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM