如何根据desc的devicetimestamp顺序从每个表中获取前1条记录

维诺德

我想获得每个表的最新devicetimestamp数据,其中deviceimei =''。im仅基于最新时间戳降序获得一个表记录,其余其他表则不基于设备时间戳降序获得最新记录。

sql

 select top 1 * from [TransTrak_V_1.0].[dbo].[Current_Voltage] as cv
      inner join [TransTrak_V_1.0].[dbo].[Overview]  as o
       on cv.DeviceImei = o.DeviceImei 
       inner join [TransTrak_V_1.0].[dbo].[Power]  as p
         on cv.DeviceImei = p.DeviceImei 
        inner join [TransTrak_V_1.0].[dbo].[PowerFactor]  as pf
        on cv.DeviceImei = pf.DeviceImei 
         inner join [TransTrak_V_1.0].[dbo].[Total_Power]  as tp
         on cv.DeviceImei = tp.DeviceImei
      where cv.DeviceImei='8673220311'
      order by cv.DeviceTimeStamp desc
     
罗斯·布什

这不是很漂亮,但这是一种解决方案。在上面的文章中,后面的表的联接不考虑它们的最大或最小时间戳,而只是设备ID。下面,已将联接转换为使用子查询,这些子查询返回按指定条件排序的每个表中的最高记录。表中将有没有匹配记录的空字段,非常类似于左联接。

select top 1 * from [TransTrak_V_1.0].[dbo].[Current_Voltage] as cv
inner join (
    Select top 1 * from [TransTrak_V_1.0].[dbo].[Overview] o 
    where cv.DeviceImei='8673220311'
    order by o.DeviceTimeStamp desc
) as o ON 1=1
inner join (
    Select top 1 * from [TransTrak_V_1.0].[dbo].[Power] p 
    where p.DeviceImei='8673220311'
    order by p.DeviceTimeStamp desc
) as p ON 1=1
inner join (
    Select top 1 * from [TransTrak_V_1.0].[dbo].[PowerFactor] pf 
    where pf.DeviceImei='8673220311'
    order by pf.DeviceTimeStamp desc
) as p ON 1=1  
inner join (
    Select top 1 * from [TransTrak_V_1.0].[dbo].[Total_Power] tp 
    where tp.DeviceImei='8673220311'
    order by tp.DeviceTimeStamp desc
) as tp ON 1=1  
where cv.DeviceImei='8673220311'
order by cv.DeviceTimeStamp desc

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取每个值的 1 条记录

来自分类Dev

获取表中的前100条记录

来自分类Dev

使用SQL获取前k条记录/表中的行

来自分类Dev

如何根据条件从表中获取记录

来自分类Dev

如何从mysql中的每个表中导出N条记录?

来自分类Dev

如何根据条件从linq查询中获取100条记录

来自分类Dev

更新表SQL Server中的前1条记录

来自分类Dev

查询DynamoDB表以按创建日期获取前100条记录的顺序

来自分类Dev

如何在Cassandra 2.2中获取前5条记录

来自分类Dev

如何在Cassandra 2.2中获取前5条记录

来自分类Dev

根据特定列排序后如何获取除前5条记录以外的所有记录

来自分类Dev

如何从Redis获取前100条记录

来自分类Dev

从表中删除前10条记录

来自分类Dev

从表中删除前10条记录

来自分类Dev

如何只从左表中获取一条记录,而右表中的每条记录

来自分类Dev

如何通过获取每个组中的最后一条记录来删除重复的记录

来自分类Dev

转储每个表的前1000条记录的MySQL模式

来自分类Dev

如何获取临时表中每个记录的月份差异

来自分类Dev

从表中获取最后200条记录

来自分类Dev

如何为架构的每个表创建“统计信息”?(其中统计信息表示每个表有1条返回的记录)

来自分类Dev

不了解查询如何从每个组中检索前n条记录

来自分类Dev

如何通过排除组数组来获取MySQL表的前N条记录?

来自分类Dev

如何通过排除组数组来获取MySQL表的前N条记录?

来自分类Dev

通过保留前100条记录从表中删除记录

来自分类Dev

联接表中每个记录的基于日期的前1个记录

来自分类Dev

访问中每个组sql的前n条记录

来自分类Dev

如何在oracle中ID的每个重复行仅获取一条记录?

来自分类Dev

如何在mongodb中获取每个组的最新N条记录?

来自分类Dev

Postgresql - 如何从每个月的最后一条记录中获取价值

Related 相关文章

  1. 1

    如何获取每个值的 1 条记录

  2. 2

    获取表中的前100条记录

  3. 3

    使用SQL获取前k条记录/表中的行

  4. 4

    如何根据条件从表中获取记录

  5. 5

    如何从mysql中的每个表中导出N条记录?

  6. 6

    如何根据条件从linq查询中获取100条记录

  7. 7

    更新表SQL Server中的前1条记录

  8. 8

    查询DynamoDB表以按创建日期获取前100条记录的顺序

  9. 9

    如何在Cassandra 2.2中获取前5条记录

  10. 10

    如何在Cassandra 2.2中获取前5条记录

  11. 11

    根据特定列排序后如何获取除前5条记录以外的所有记录

  12. 12

    如何从Redis获取前100条记录

  13. 13

    从表中删除前10条记录

  14. 14

    从表中删除前10条记录

  15. 15

    如何只从左表中获取一条记录,而右表中的每条记录

  16. 16

    如何通过获取每个组中的最后一条记录来删除重复的记录

  17. 17

    转储每个表的前1000条记录的MySQL模式

  18. 18

    如何获取临时表中每个记录的月份差异

  19. 19

    从表中获取最后200条记录

  20. 20

    如何为架构的每个表创建“统计信息”?(其中统计信息表示每个表有1条返回的记录)

  21. 21

    不了解查询如何从每个组中检索前n条记录

  22. 22

    如何通过排除组数组来获取MySQL表的前N条记录?

  23. 23

    如何通过排除组数组来获取MySQL表的前N条记录?

  24. 24

    通过保留前100条记录从表中删除记录

  25. 25

    联接表中每个记录的基于日期的前1个记录

  26. 26

    访问中每个组sql的前n条记录

  27. 27

    如何在oracle中ID的每个重复行仅获取一条记录?

  28. 28

    如何在mongodb中获取每个组的最新N条记录?

  29. 29

    Postgresql - 如何从每个月的最后一条记录中获取价值

热门标签

归档