列出过程中最后一小时内给定金属消耗的总功率

时间:2019-06-13 16:10:56

标签: sql sql-server sql-server-2008

我有两个桌子。金属主表具有实际的金属开始和结束时间戳记。金属间隔表具有特定时间戳的电量读数。特定时间间隔内的功率是所有读数的累计电量差异 在“金属间隔”数据中的时间间隔中。我正在尝试获取该过程的最后一小时内给定金属消耗的总功率的列表。你能帮我吗?

这是示例表:

Metal_Interval_Data

MetalID TreatID Plant   ElctrctyConsumed    ReadingTime 
123456  8       MEAF    21500        2017-07-01 14:01:34.34
123456  8       MEAF    21650        2017-07-01 14:01:44.44
123456  8       MEAF    0            2017-07-01 09:54:53.53
123478  8       MEAF    0            2017-07-01 23:37:19.19
123478  8       MEAF    150          2017-07-02 00:32:08.08

金属主数据

MetalID MetalStartActual        MetalStartPlanned       MetalEndActual   MetalEndPlanned
123456  2017-07-01 09:51:42.42  2017-06-30 08:59:35.35  2017-07-01 16:05:33.33  2017-06-30 14:59:35.35
123478  2017-07-01 23:30:31.31  2017-06-30 20:00:00.00  2017-07-02 00:33:25.25  2017-06-30 20:59:59.59
124302  2017-07-02 01:42:42.42  2017-07-01 20:51:47.47  2017-07-02 02:17:14.14  2017-07-01 21:51:47.47

2 个答案:

答案 0 :(得分:1)

尝试以下脚本-

SELECT A.MetalID,SUM(B.ElctrctyConsumed) TotalConsumed
FROM Metal_Master_Data A
INNER JOIN Metal_Interval_Data B ON A.MetalID = B.MetalID
WHERE B.ReadingTime BETWEEN DATEADD(HH,-1,A.MetalEndActual) AND A.MetalEndActual
GROUP BY A.MetalID

答案 1 :(得分:1)

@mkRabbani是正确的,但特定于给定的金属ID

scrollable="on"