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

2023-12-21

我在 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...

And periodt- 其中包含不定期传入的数据:

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

给定一行dailyt,我想通过添加相应的值来调整它的值periodt最接近的日期先于或等于该日期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

我知道做到这一点的一种方法是加入dailyt and periodt桌子上periodt.date <= dailyt.date然后施加一个ROW_NUMBER() (PARTITION BY dailyt.date ORDER BY periodt.date DESC)条件,然后有一个WHERE行号 to = 1 的条件。

有没有另一种方法可以更有效地做到这一点?或者这已经是最佳选择了?


我认为使用APPLY http://technet.microsoft.com/en-us/library/ms175156%28v=sql.105%29.aspx将是最有效的方法:

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 Fiddle 示例 http://sqlfiddle.com/#!3/4f1d6/1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据最近的先前日期匹配两个表之间的值的最有效方法是什么? 的相关文章

  • SELECT max(x) 返回 null;我怎样才能让它返回0?

    运行以下命令时如何返回 0 而不是 null SELECT MAX X AS MaxX FROM tbl WHERE XID 1 假设没有XID 1的行 or SELECT coalesce MAX X 0 AS MaxX FROM tbl
  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • SQL 约束以防止根据列的先前值更新列

    是否可以使用检查约束 或其他一些技术 来防止在更新记录时设置与其先前值相矛盾的值 一个例子是 NULL 时间戳 表明发生了某些事情 例如 file exported 一旦文件被导出并且具有非 NULL 值 就不应再将其设置为 NULL 另一
  • 如何使用 BigQuery 有效地选择另一个表中匹配子字符串的记录?

    我有一个包含数百万个字符串的表 我想将其与包含大约两万个字符串的表进行匹配 如下所示 standardSQL SELECT record FROM record JOIN fragment ON record name LIKE CONCA
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 如何在 SQL Server 中连接

    我的数据库没有特定的列 因此我通过开关在查询中创建了一个列 我需要的是将此列与数据库中的另一列连接起来 select certificateDuration DurationType case when certificateDuratio
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作
  • 使用默认路径中的文件创建数据库

    我想创建一个创建数据库的 SQL 脚本 现在 我有这个 CREATE DATABASE Documents ON PRIMARY NAME N Documents FILENAME N Documents mdf LOG ON NAME N
  • 返回日期为 null 作为 t-sql 中的最大值

    我有这张桌子 ID Date Value 3241 9 17 12 5 3241 9 16 12 100 3241 9 15 12 20 4355 9 16 12 12 4355 9 15 12 132 4355 9 14 12 4 100
  • 在 MySQL 中将值设置为 NULL

    我想要一个值被设置为NULL如果我提交的表单中的文本框中没有输入任何内容 我怎样才能做到这一点 我试过插入 NULL 但这只是添加了这个词NULL进入现场 我不确定我应该为此提供什么代码 我只是编写一个 UPDATE 查询 不要放NULL更
  • JPA 为每个项目选择最新实例

    假设我有一个会议实体 每次会议都有一个与会者和一个会议日期 在我的会议表中 我可能为每个与会者举行多个会议 每个会议都有不同的日期 我需要一个 JPA 查询 该查询将为所有与会者仅选择最新的会议 例如 如果我的桌子看起来像这样 Meetin
  • 使用 order by 和 limit 从多个表中删除

    我试图从使用 ORDER BY DESC 和 LIMIT 有关系的两个表中删除 DELETE FROM my rel table AS t1 LEFT JOIN my photo table AS t2 ON t2 typeid t1 ty
  • 在查询中创建临时变量

    我希望能够在查询中创建一个临时变量 而不是存储过程或函数 它不需要声明和设置 这样我在调用它时就不需要传递查询参数 正在努力朝这个方向努力 Select field1 tempvariable 2 2 newlycreatedfield t
  • 如何在 sql 2005 或 2008 中使列区分大小写

    是否可以根据列更改默认排序规则 我想让 1 列区分大小写 但其他所有列都不区分大小写 ALTER TABLE ALTER COLUMN允许更改单个列的排序规则 alter table Foo alter column Bar ntext c
  • MySQL - 连接 a 或 b

    假设我有一个TABLE a其中一个COLUMN data是一个join其他 2 张桌子 TABLE b and TABLE c 因为我想得到一个COLUMN info in b or c 事情是a data将匹配only with b da
  • 如何在SQL Server中获取与正则表达式匹配的字符串的一部分

    我有一个要求 我需要解析列值以获取与其关联的工作请求编号 例如 列值可能包含 致力于 AB 0012589 or AB 0012589 已完成 或其中包含工作请求编号的任何内容 Here AB 0012589是工作请求编号 工作请求编号的格
  • 使用 ActiveRecord 和 Yii2 记录实际的 SQL 查询?

    我正在这样做 students Student find gt all return this gt render process array students gt students 然后在视图中 foreach students as

随机推荐

  • 华为OD机试真题-部门人力分配-2023年OD统一考试(C卷)

    题目描述 部门在进行需求开发时需要进行人力安排 当前部门需要完成N个需求 需求用requirements 表示 requirements i 表示第i个需求的工作量大小 单位 人月 这部分需求需要在M个月内完成开发 进行人力安排后每个月的人
  • std::string 转为 LPCTSTR类型

    在串口通讯中使用CreateFile 时 第一个参数类型为 LPCTSTR 通常使用的string类型需要进行转换 HANDLE CreateFile LPCTSTR lpFileName 指向文件名的指针 DWORD dwDesiredA
  • winrscmd.dll文件缺少导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个winrscm
  • 互操作性(Interoperability)如何影响着机器学习的发展?

    互操作性 Interoperability 也称为互用性 即两个系统之间有效沟通的能力 是机器学习未来发展中的关键因素 对于银行业 医疗和其他生活服务行业 我们期望那些用于信息交换的平台可以在我们需要时无缝沟通 我们每个人都有成千上万个数据
  • winsockhc.dll文件缺少导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个winsock
  • SpringBoot代码混淆与反混淆加密工具详解

    目录 反编译 混淆 正文 一共就两步 无需源码 直接对ipa文件进行混淆加密 打开要处理的IPA文件 设置签名使用的证书和描述文件 开始ios ipa重签名 简单就是把代码跑一哈 然后我们的代码 java文件 就被编译成了 class 文件
  • 38条Web测试经验分享

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 9k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 详解数据科学自动化与机器学习自动化

    过去十年里 人工智能 AI 构建自动化发展迅速并取得了多项成就 在关于AI未来的讨论中 您可能会经常听到人们交替使用数据科学自动化与机器学习自动化这两个术语 事实上 这些术语有着不同的定义 如今的自动化机器学习 即 AutoML 特指模型构
  • winrssrv.dll文件缺少导致程序无法启动问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个winrssr
  • RPA机器人助力义务教育招生随机派位系统

    作为一名教育行业从业者 我深切地感受到招生工作中的繁琐和低效 每年招生季 我们需要处理大量的报名信息 进行筛选和录取工作 然而 由于人力资源有限 往往会出现疏漏和错误 给招生工作带来了不小的困扰 幸运的是 我们发现了八爪鱼RPA这一强大的工
  • 浏览器原理篇—渲染原理

    目录导航 为什么要学习浏览器的渲染原理 浏览器的渲染流程 浏览器的渲染阻塞 浏览器的渲染优化 为什么要学习浏览器的渲染原理 知识深度挖掘 帮助更好地理解前端性能优化 从而对实现效果进行针对性优化 如 回流和重绘 渲染机制 帮助更好地理解浏览
  • Hibernate 标准:使用 group by 子句投影计数

    我想执行以下SQL select count as myCount from user group by name 我提出了以下相同的标准 DetachedCriteria ForClass typeof UserDTO setProjec
  • 无法在棒棒糖之前的设备上获取提供程序 com.google.firebase.perf.provider.FirebasePerfProvider

    在 v21 之前的所有版本 即 16 19 上 我的应用程序在启动时崩溃 因为出现以下错误 E AndroidRuntime FATAL EXCEPTION main java lang RuntimeException Unable to
  • webpackJsonp 未使用 karma-webpack 定义?

    我正在使用 webpack 构建一个样板 并使用 mocha 构建 karma 这是我用于 karma webpack 的配置 我是 webpack 的新手 var path require path var webpack require
  • 在Mongo中有什么方法可以像原子操作一样进行检查和设置?

    Mongo中有什么方法可以像原子操作一样进行检查和设置吗 我正在预订酒店 如果有空闲房间 您可以预订 但如果两个或更多人想同时预订怎么办 Mongo中有没有类似事务的东西或者有什么方法可以解决这个问题 是的 这是 MongoDB 的经典用例
  • 为什么 OpenFileDialog 会更改我的工作目录?

    为什么 OpenFileDialog 会更改我的工作目录 我应该假设 System Windows Forms 中的许多函数会更改我的工作目录吗 OpenFileDialog open new OpenFileDialog open Fil
  • R for 循环 ifelse 跳到下一次迭代

    假设你有一个像这样的 for 循环 for n in 1 5 if n 3 skip 3rd iteration and go to next iteration cat n 如果满足特定条件 如何跳到下一次迭代 for n in 1 5
  • 获取 LinkedIn 个人资料图片

    有没有一种简单的方法来获取用户的 LinkedIn 个人资料照片 理想情况下类似于您使用 Facebook 的方式 http graph facebook com userid picture http graph facebook com
  • 将对象转换为 Angular 中的 json

    我正在尝试将对象转换为 json 在我的updateDetails方法但是我得到了undefined in console log转换后为json 这是怎么回事 我的鳕鱼是 HTML
  • 根据最近的先前日期匹配两个表之间的值的最有效方法是什么?

    我在 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 et