Расчет суммы без столбца прямого соединения - PullRequest
0 голосов
/ 24 января 2020

У меня есть таблица (ShipJourneys), где мне нужно рассчитать общее потребление топлива, которое является значением с плавающей запятой. Смотрите изображение ниже.

enter image description here

Это значение получается путем суммирования всех индивидуальных потребителей топлива для данного судна за указанный период времени. Эти данные содержатся во второй таблице.

enter image description here

Помеченный в области красным цветом, было 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

Использование чего-либо, подобного приведенному ниже запросу, не работает, что приводит к фиктивным значениям

UPDATE  ShipJourneys 
SET TotalFuelConsumed = 
    (Select sum(FuelCalc) from FuelCalc as f 
    WHERE f.timestamp >= StartTimeUTC 
    and f.timestamp <= EndTimeUTC 
    and f.FK_RmaID = FK_RmaID)

Любые предложения о том, как я могу присоединиться к ним

1 Ответ

0 голосов
/ 24 января 2020

Вы можете попробовать что-то вроде этого:

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
...