列出给定金属在该过程的最后一小时内消耗的总功率
List the total power consumed for a given metal in the last one hour of the process
我有两个 table。 Metal master table 具有实际的金属开始和结束时间戳。金属间隔 table 具有特定时间戳的电量读数。特定时间间隔的功率是所有读数消耗的电量的累积差异
在金属间隔数据的时间间隔中。我正在尝试获取在该过程的最后一个小时内给定金属消耗的总功率的列表。你能帮我解决这个问题吗?
这是示例 table:
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
Metal_Master_Data
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
试试下面的脚本-
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
@mkRabbani 是正确的,但它特定于给定的金属 ID
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 and A.MetalID=@givenmetalid
GROUP BY A.MetalID
我有两个 table。 Metal master table 具有实际的金属开始和结束时间戳。金属间隔 table 具有特定时间戳的电量读数。特定时间间隔的功率是所有读数消耗的电量的累积差异 在金属间隔数据的时间间隔中。我正在尝试获取在该过程的最后一个小时内给定金属消耗的总功率的列表。你能帮我解决这个问题吗?
这是示例 table:
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
Metal_Master_Data
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
试试下面的脚本-
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
@mkRabbani 是正确的,但它特定于给定的金属 ID
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 and A.MetalID=@givenmetalid
GROUP BY A.MetalID