我执行下面的 SQL 代码。尽管计算表达式不为零,但所有行都更新为零,因为附加信息分母在每种情况下都更大。
UPDATE #t
SET ProportionOfvehicle = (CountOfVehicle / @TotalNumberOfPrivateVehicles)*100
WHERE LegalPersonID IS NOT NULL;
最佳答案
我终于可以自己解决问题了。我创建了一个临时表,其计算字段的数据类型是 float 如下所示
**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**
关于sql - 用计算表达式更新 sql 临时表列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58301283/