0

我被困在创建一个复杂的查询......也许那里有一些帮助?:) 我有一张带有设备状态的表格。每次设备状态更改都会生成一个条目。我想要的是一个输出,我可以在其中看到所有设备的最新每个日期 - 对于表中包含的所有日期。在这个例子中 04.05.2021 - 06.05.2021。我想将它用于仪表板。

谁能帮我吗?

以下是该表的外观示例:设备更改表:

ID 设备ID 改变 预值 后值
20 40 04.05.2021 13:00 -
21 41 04.05.2021 13:00 -
22 42 04.05.2021 13:00 -
23 43 04.05.2021 13:00 -
24 44 04.05.2021 13:00 -
25 45 04.05.2021 13:00 -
26 46 04.05.2021 13:00 -
27 47 04.05.2021 13:00 -
28 48 04.05.2021 13:00 -
29 40 05.05.2021 15:00 离开
30 40 05.05.2021 16:00 离开 恢复
31 40 05.05.2021 17:00 恢复 等待
32 41 06.05.2021 09:00 离开
33 41 06.05.2021 10:00 离开 等待
35 40 06.05.2021 11:00 等待

我想要实现的输出如下:

LATESTSTATPERDATE 设备ID 改变 预值 后值
04.05.2021 40 04.05.2021 13:00 -
04.05.2021 41 04.05.2021 13:00 -
04.05.2021 42 04.05.2021 13:00 -
04.05.2021 43 04.05.2021 13:00 -
04.05.2021 44 04.05.2021 13:00 -
04.05.2021 45 04.05.2021 13:00 -
04.05.2021 46 04.05.2021 13:00 -
04.05.2021 47 04.05.2021 13:00 -
04.05.2021 48 04.05.2021 13:00 -
05.05.2021 40 05.05.2021 17:00 恢复 等待
05.05.2021 41 04.05.2021 13:00 -
05.05.2021 42 04.05.2021 13:00 -
05.05.2021 43 04.05.2021 13:00 -
05.05.2021 44 04.05.2021 13:00 -
05.05.2021 45 04.05.2021 13:00 -
05.05.2021 46 04.05.2021 13:00 -
05.05.2021 47 04.05.2021 13:00 -
05.05.2021 48 04.05.2021 13:00 -
06.05.2021 40 06.05.2021 11:00 等待
06.05.2021 41 06.05.2021 10:00 离开 等待
06.05.2021 42 04.05.2021 13:00 -
06.05.2021 43 04.05.2021 13:00 -
06.05.2021 44 04.05.2021 13:00 -
06.05.2021 45 04.05.2021 13:00 -
06.05.2021 46 04.05.2021 13:00 -
06.05.2021 47 04.05.2021 13:00 -
06.05.2021 48 04.05.2021 13:00 -
WORKING SOLUTION FOR ME:
With
    Query1 As (
        Select
            *
        From
            devices
    )
select 
    first.deviceid as Device,
    first.changedon as Date,
    first.changedon1 as SubDate,
    first.prevalue,
    first.postvalue
from (
Select
    Concat(Date(devices.changedon), " 23:59:59") As changedon,
    Query1.deviceid,
    Query1.changedon As changedon1,
    Query1.prevalue,
    Query1.postvalue
From
    devices Left Join
    Query1 On Query1.changedon <= devices.changedon
Group By
    devices.changedon,
    Query1.deviceid
order by devices.changedon DESC, changedon1 DESC
) as first
group by Date,Device
order by Date ASC
4

0 回答 0