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

标签 sql sql-server

我执行下面的 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/

相关文章:

sql - 使用子句 IF 和 IN 获取值

sql - SSRS : field shows correct in query but wrong in report preview

sql-server - NodeJs 中用于 MsSql 的 SequelizeJs 关联

sql-server - 使用 mdf 与 sql 数据库服务器的优点/缺点是什么

sql - 在组内递增计数

mysql - 无法添加外键 MySQL :errno 150

MySQL:避免在更新之前必须在 UNIQUE 字段上设置 NULL 值

php - 在 SQL 中多次选择一个值

sql - 如何更新满足 SQL Server 中 SELECT 语句内条件的特定行的值

sql - 在 SSIS 派生列中替换 NULL