根据最近的先前日期在2个表之间匹配值的最有效方法是什么?

w

我在MS SQL Server中有两个表:

dailyt -包含每日数据:

date             val
---------------------
2014-05-22       10
2014-05-21       9.5
2014-05-20       9
2014-05-19       8
2014-05-18       7.5
etc...

并且periodt-包含不定期输入的数据:

date             val
---------------------
2014-05-21       2
2014-05-18       1

给定中的某行dailyt,我想通过添加periodt与该行日期之前或之后的最接近日期的相应值in来调整其值dailyt因此,输出如下所示:

addt

date             val
---------------------
2014-05-22       12      <- add 2 from 2014-05-21
2014-05-21       11.5    <- add 2 from 2014-05-21
2014-05-20       10      <- add 1 from 2014-05-18
2014-05-19       9       <- add 1 from 2014-05-18
2014-05-18       8.5     <- add 1 from 2014-05-18

我知道实现此目的的一种方法是将dailytperiodtperiodt.date <= dailyt.date联接在一起,然后施加ROW_NUMBER() (PARTITION BY dailyt.date ORDER BY periodt.date DESC)条件,然后WHERE将行号上的条件设置为= 1。

还有另一种方法可以更有效地做到这一点吗?或者这是最佳选择?

加雷斯

我认为使用APPLY将是最有效的方法:

SELECT  d.Val,
        p.Val,
        NewVal = d.Val + ISNULL(p.Val, 0)
FROM    Dailyt AS d
        OUTER APPLY
        (   SELECT  TOP 1 Val
            FROM    Periodt p
            WHERE   p.Date <= d.Date
            ORDER BY p.Date DESC
        ) AS p;

SQL小提琴上的示例

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在javascript中2个对象之间返回匹配元素数组的最有效方法是什么?

来自分类Dev

比较2个Numpy矩阵的每个值的最有效方法是什么?

来自分类Dev

在 2 个数据帧之间查找最近日期的最有效方法

来自分类Dev

在Ruby中获取两个日期之间的Date对象数组的最有效方法是什么?

来自分类Dev

查找第一个匹配记录的最有效方法是什么?

来自分类Dev

计算两个集合(Java)之间的交点的最有效方法是什么?

来自分类Dev

用Pandas检查2个系列中的一对值的最有效方法是什么?

来自分类Dev

根据另一个列表中的值从列表中筛选出值的最有效方法是什么

来自分类Dev

在用户输入的相关部分和数组之间找到匹配的最有效方法是什么?

来自分类Dev

在两个(或更多个)数组中查找匹配的单元格序列的最有效方法是什么?

来自分类Dev

什么是存储mysql表最近更改的最有效方法

来自分类Dev

合并具有嵌套键和日期键的对象的最有效方法是什么?

来自分类Dev

根据像素的颜色生成RGB图像的布尔蒙版的最有效的方法是什么?

来自分类Dev

使用 Lodash 或 vanilla JS 根据对象键过滤数组的最有效方法是什么?

来自分类Dev

将IP地址与大量路由条目匹配的最有效方法是什么?

来自分类Dev

从PostgreSQL的时间戳中提取日期的最有效方法是什么?

来自分类Dev

按日期和/或月份和/或年份检索记录的最有效方法是什么?

来自分类Dev

在NodeJS服务器之间发送文件的最有效方法是什么?

来自分类Dev

在多维数组和单个数组之间存储数据的最有效方法是什么?

来自分类Dev

在多个存储库之间共享github工作流的最有效方法是什么?

来自分类Dev

在iOS中显示具有多列的表的最有效方法是什么?

来自分类Dev

在pyspark中将值随机更改为空值的最有效方法是什么?

来自分类Dev

在Python中逐位比较2个数字(16位)的最有效方法是什么?

来自分类Dev

获得具有最大值的行的最有效方法是什么?

来自分类Dev

标识具有不同值的行的最有效方法是什么

来自分类Dev

从Python中的类方法返回多个值的最有效方法是什么?

来自分类Dev

从Python中的类方法返回多个值的最有效方法是什么?

来自分类Dev

用Java比较MySQL表中行的最有效方法是什么

来自分类Dev

在R中删除数据表中空列的最有效方法是什么

Related 相关文章

  1. 1

    在javascript中2个对象之间返回匹配元素数组的最有效方法是什么?

  2. 2

    比较2个Numpy矩阵的每个值的最有效方法是什么?

  3. 3

    在 2 个数据帧之间查找最近日期的最有效方法

  4. 4

    在Ruby中获取两个日期之间的Date对象数组的最有效方法是什么?

  5. 5

    查找第一个匹配记录的最有效方法是什么?

  6. 6

    计算两个集合(Java)之间的交点的最有效方法是什么?

  7. 7

    用Pandas检查2个系列中的一对值的最有效方法是什么?

  8. 8

    根据另一个列表中的值从列表中筛选出值的最有效方法是什么

  9. 9

    在用户输入的相关部分和数组之间找到匹配的最有效方法是什么?

  10. 10

    在两个(或更多个)数组中查找匹配的单元格序列的最有效方法是什么?

  11. 11

    什么是存储mysql表最近更改的最有效方法

  12. 12

    合并具有嵌套键和日期键的对象的最有效方法是什么?

  13. 13

    根据像素的颜色生成RGB图像的布尔蒙版的最有效的方法是什么?

  14. 14

    使用 Lodash 或 vanilla JS 根据对象键过滤数组的最有效方法是什么?

  15. 15

    将IP地址与大量路由条目匹配的最有效方法是什么?

  16. 16

    从PostgreSQL的时间戳中提取日期的最有效方法是什么?

  17. 17

    按日期和/或月份和/或年份检索记录的最有效方法是什么?

  18. 18

    在NodeJS服务器之间发送文件的最有效方法是什么?

  19. 19

    在多维数组和单个数组之间存储数据的最有效方法是什么?

  20. 20

    在多个存储库之间共享github工作流的最有效方法是什么?

  21. 21

    在iOS中显示具有多列的表的最有效方法是什么?

  22. 22

    在pyspark中将值随机更改为空值的最有效方法是什么?

  23. 23

    在Python中逐位比较2个数字(16位)的最有效方法是什么?

  24. 24

    获得具有最大值的行的最有效方法是什么?

  25. 25

    标识具有不同值的行的最有效方法是什么

  26. 26

    从Python中的类方法返回多个值的最有效方法是什么?

  27. 27

    从Python中的类方法返回多个值的最有效方法是什么?

  28. 28

    用Java比较MySQL表中行的最有效方法是什么

  29. 29

    在R中删除数据表中空列的最有效方法是什么

热门标签

归档