Tsql 计算没有直接联接列的和

Tsql 计算没有直接联接列的和,tsql,join,sum,Tsql,Join,Sum,我有一个表格(ShipJournies),我需要计算消耗的总燃油量,这是一个浮动值。见下图 该值是通过在规定的时间范围内对给定船舶的所有单个燃料消耗量求和得到的。该数据包含在第二个表中 红色方框区域显示共有5个燃油消耗装置(由FK_RmaDataSumsystemConfigID指定),其中3个消耗装置燃烧了0单位燃油,2个消耗装置各燃烧了29单位燃油 为了计算给定船舶(由FK_RmaID规定)在该时间范围内消耗的燃料总量,可以使用以下查询 Select sum(FuelCalc) fro

我有一个表格(ShipJournies),我需要计算消耗的总燃油量,这是一个浮动值。见下图

该值是通过在规定的时间范围内对给定船舶的所有单个燃料消耗量求和得到的。该数据包含在第二个表中

红色方框区域显示共有5个燃油消耗装置(由FK_RmaDataSumsystemConfigID指定),其中3个消耗装置燃烧了0单位燃油,2个消耗装置各燃烧了29单位燃油

为了计算给定船舶(由FK_RmaID规定)在该时间范围内消耗的燃料总量,可以使用以下查询

Select sum(FuelCalc) 
from FuelCalc 
where Timestamp >= '2019-07-24 00:00:00' 
and  Timestamp <= '2019-07-24 00:02:00' 
and FK_RmaID = 660
选择总和(FuelCalc)
来自FuelCalc
其中时间戳>='2019-07-24 00:00:00'
时间戳=StartTimeUTC

f.timestamp您可以尝试类似的方法:

UPDATE myTable // Put the table correct name here
    SET TotalFuelConsumed = 
        Select sum(FuelUsed) from FuelTimeTbl as fuelTbl 
        WHERE fuelTbl.timestamp >= '2019-10-21 22:13:55.000' 
        and fuelTbl.imestamp <= '2019-11-27 17:10:58.000' 
        and fuelTbl.FK_RmaID = myTable.RmaID // Put the correct attribute name
updatemytable//在此处输入正确的表名
设置TotalFuelConsumed=
从FuelTimeTbl中选择sum(FuelUsed)作为fuelTbl
其中fuelTbl.timestamp>='2019-10-21 22:13:55.000'

和fuelTbl.imestamp更新到什么?你能做这件事的哪一部分?例如,根据行中的列更新为常量或值。请在代码问题中给出一个--cut&paste&runnable代码;示例输入(作为初始化代码)以及所需和实际输出(包括逐字错误消息);标签和版本;清晰的说明和解释。对于包含最少代码的错误,您可以给出“显示为OK”的代码,并通过“显示为not OK”的代码进行扩展。(调试基础。)对于包含DBMS和DDL的SQL,包括约束、索引和表格初始化。我编辑了这篇文章。实际的表数据更复杂,并且驻留在不同的服务器上。撇开这些复杂的问题不谈,我已经尽了最大的努力来进一步解释这个问题。从其他文本中转述或引用。给出你所需要的&把它和你的问题联系起来。仅将图像用于不能表示为文本或扩充文本的内容。无法搜索或剪切粘贴图像。包括带有图像的图例/图例和说明。无论如何,如果它是输入的,它应该是初始化代码,同时格式化为一个表,剪切粘贴和运行的一部分。还有一个更简单但更具代表性的例子,船?什么船?军事革命?请根据您的申请解释表格。使用足够的单词、句子和引用部分例子,清楚、完整地说出你的意思。当给出一个业务关系(ship)/关联或表(base或query result)时,请说明其中的一行根据其列值表示的业务状况。您似乎想要每个rmal的总和/聚合,为什么不按它分组?如果你想要一个总和,你应该读重新聚合,所以你应该读重新分组。这将是一个常见问题,当你在一句话中清楚地说明想要的行是什么。它不清楚——你想要的是每个日期范围的总和,还是每个船只的总和,还是什么?那么这个和是什么,作为每一列集合中哪一列的行的和,以及哪一个表的条件?请同时给出给定输入的所需输出。
UPDATE myTable // Put the table correct name here
    SET TotalFuelConsumed = 
        Select sum(FuelUsed) from FuelTimeTbl as fuelTbl 
        WHERE fuelTbl.timestamp >= '2019-10-21 22:13:55.000' 
        and fuelTbl.imestamp <= '2019-11-27 17:10:58.000' 
        and fuelTbl.FK_RmaID = myTable.RmaID // Put the correct attribute name