在 SQL Server 2008 R2 中引用前一行值进行算术计算

2024-07-03

我正在使用 SQL Server 2008 R2,并且是关系数据库的新手。我需要运行一个简单的计算,但计算涉及使用前一行的值。

Example:

(Value of X) / ((Value of Y at time t + Value of Y at time t-1) / 2)

Example:

select (x/[(y@time,t + y@time,t-1)/2]) as 'Value'
from datatable
select ((c.ACHQ)/(c.RECTQ(row:n) + c.RETQ(row:n-1))/2) as 'AR'
from co_ifndq c
where c.GVKEY in 
(select GVKEY 
    from spidx_cst
    where DATADATE = '2012-03-12'
    and INDEXID = '500')
and c.DATAFMT = 'std'
and c.DATADATE > '1990-12-30'
order by c.GVKEY, datadate desc

据我了解,您想根据日期差异而不是真正的行顺序进行计算,对吗?

如果是的话,如果你有一张这样的桌子

CREATE TABLE YourTable(
    ACHQ float ,
    RECTQ float,
    DATE datetime)

INSERT INTO YourTable VALUES    (100,10,'20100101')
INSERT INTO YourTable VALUES    (200,20,'20110101')
INSERT INTO YourTable VALUES    (300,30,'20120101')
INSERT INTO YourTable VALUES    (400,40,'20130101')
INSERT INTO YourTable VALUES    (500,50,'20140101')
INSERT INTO YourTable VALUES    (600,60,'20150101')

你可以做这样的事情

SELECT
    ((c.ACHQ)/(c.RECTQ + cPreviousYear.RECTQ)/2) as 'AR'
FROM
    YourTable c
        LEFT JOIN YourTable cPreviousYear
            ON YEAR(c.Date) - 1 = YEAR(cPreviousYear.Date)

我简化了计算,只是为了表明您可以将表本身直接链接到具有所需日期差异的行,然后计算值。你甚至可以使用ON DATEADD(y, -1, c.Date) = cPrevious.Date如果你想要真实的日期差异

抱歉,如果我错过了重点。

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

在 SQL Server 2008 R2 中引用前一行值进行算术计算 的相关文章

  • SQL Server 2012:插入和触发器之间的 DATETIME 差异

    我们遇到了一个非常奇怪的问题 当打电话时GETUTCDATE 第二个语句中的返回值比第一个语句稍早 我们的场景如下 我们插入一个表来跟踪用户当前状态 该表有一个触发器 可以将用户过去状态的关联历史表插入到DATETIME字段和插入调用GET
  • 如何插入只有一个 IDENTITY 列的表?

    在尝试回答的过程中提出了这个问题另一个 https stackoverflow com questions 850017 how to manage groups in the database 850049 850049 考虑下面的 MS
  • Postgres 中的动态 UNION ALL 查询

    我们使用 Postgres PostGis 连接来获取通过地理服务器发布的数据 查询现在看起来像这样 SELECT row number over ORDER BY a ogc fid AS qid a wkb geometry AS ge
  • java.sql.SQLException:使用 IN 运算符时出现数字溢出

    我实现了一个 Java 应用程序 它使用以下查询根据给定的 id 集查询数据库 select from STUDENT where ID in 该组 id 将用于替换 但是 有时我会收到异常 Caused by java sql SQLEx
  • 当跟踪值达到 bigint 限制时会发生什么变化?

    假设我已对数据库中的 200 个表启用了更改跟踪 由于变化跟踪数据库范围内的值变化 如果我达到 BIGINT 的最大值怎么办 为了达到bigint限制 在接下来的 292471 年里 您必须每秒更改数据库中的 100 万行 祝你好运
  • 除了结构化 XML 数据之外,还选择行数据

    我知道如何将 XML 变量连接到其他表 但在本例中 我尝试从表中选择每一行以及 XML 的结构从每个相应的表行 在那一行旁边 我无法在网上找到任何示例来帮助解决此问题 因为大多数示例都处理单个 XML 值 抱歉 如果有的话 我无法在无数其他
  • 调用存储过程、传递 NULL 值、处理布尔值

    调用存储过程时 我将值连接在一起 我的问题是如何调用存储过程但在其中一个参数中发送 NULL 值 假设 AID null 但如果我将其传递给我的查询 我会收到错误 QueryConn Execute Search Res Count Acc
  • SQL Server:连接表时删除重复列

    我有 4 个表 其中一列在所有表中都很常见 有没有一种方法可以创建一个视图 在该视图中我可以通过同一列连接所有表 而我只看到一次公共列 假设我有 table1 Cust ID Order ID Product Name Table2 Cus
  • 比较跨多个数据库的存储过程 (SQL Server)

    SQL 大师 我们的架构由多个客户数据库和一个公共代码库组成 当我们部署数据库更改时 必须针对每个数据库运行脚本 由于部署问题 我们的存储过程有时会彼此不同步 我想创建一个脚本来返回这些不匹配的过程 以确保我们在部署后拥有数据库的同步副本
  • 为什么 SSMS 会更改我的存储过程(重新格式化、将 exec 更改为 EXECUTE 等)

    SSMS 突然重新格式化我的存储过程 它以前从未这样做过 这是我正在谈论的一个例子 这是我上周创建的存储过程的开头 CREATE PROCEDURE dbo usp LoanDataNames LoanID varchar max null
  • 在 PL/SQL 过程中,如何将表名作为参数传递?

    CREATE PROCEDURE A tab IN table AS BEGIN INSERT INTO tab VALUES 123 END A 我怎样才能指定参数tab是表名吗 你不能 相反 您需要将其作为 VARCHAR2 字符串传递
  • 是否有一个表保存 sysobjects.xtype 描述的列表?

    根据sysobjects 文档 https msdn microsoft com en us library ms177596 aspx sysobjects xtype可以是以下对象类型之一 xtype Description AF Ag
  • 将datagridview的所有数据插入数据库vb.net

    Dim Con As OleDbConnection New OleDbConnection Provider Microsoft Jet OLEDB 4 0 Data Source Music Sales Database mdb Dim
  • 使用 SUM() 而不使用 ISNULL() 是否安全

    我正在努力提高 SP 的性能 我对 SUM 和 ISNULL 有疑问 当我对一列求和时 我应该使用 ISNULL 吗 使用不带 ISNULL 的 SUM 安全吗 我的例子如下 SUM ISNULL COL1 0 由于 ISNULL 成本很高
  • 如何清除实体框架中的待定更改

    我有一些表数据DbContext我不想保存 我已经删除了数据库 重新设置了它 但是挂起的更改不会消失DbContext 重建数据库后 我的数据库表为空 但是当我将实体作为对象列表调用时 它仍然包含旧对象 关于如何清除旧的待处理数据有什么建议
  • 如何计算 django 连接表中对象的数量?

    我的问题很简单 我有Users谁拥有Assets or Assets属于用户的如果您愿意 但我无法检索其数量 计数 Assets each User有 我知道这对你们大多数人来说可能听起来很愚蠢 但我是 python django 来自 P
  • mysql 从每个组中选择 2 行

    我有 2 个具有这种结构的表 Products id title 1 sample 1 2 sample 2 3 sample 3 4 sample 4 5 sample 5 6 sample 6 gallery id typeid nam
  • SQL 查询提供与多个列匹配的不同结果

    抱歉 我无法为我的问题提供更好的标题 因为我对 SQL 还很陌生 我正在寻找一个可以解决以下问题的 SQL 查询字符串 我们假设如下表 DOCUMENT ID TAG 1 tag1 1 tag2 1 tag3 2 tag2 3 tag1 3
  • 使用 dbt 中的星形宏获取列名称和类型

    使用星形宏 除了列名之外 有没有办法还获取列数据类型 布尔值 数值等 例如 此查询使用星号宏从引用表中收集列名 并将其保存为数组变量column names 然后循环该数组并将 max 函数应用于所有列 set column names s
  • PostgreSQL 使用“lag()”窗口函数更新查询

    我有一个涉及Postgresql数据库的任务 我对 SQL 不太有经验 我有一张贸易产品每周营业额的表格 每周提供以下信息 产品 周数 周营业额 可能是正值或负值 具体取决于天气 更多产品被购买或出售 我添加了一栏 其中包含每周的期末余额

随机推荐

  • 如何从 ASP.NET Core 中的另一个类访问 DataContext?

    我创建了一个类 以便我可以查询我的数据 如果我在控制器类数据上下文中执行此操作 则有效 但如果我在创建的类中执行此操作 则会抛出 null 错误 它抛出以下错误 Microsoft Extensions DependencyInjectio
  • 聚合 SQL 函数以仅获取每组中的第一个

    我有 2 个表 一个帐户表和一个用户表 每个帐户可以有多个用户 我有一个场景 我想对这两个表执行单个查询 联接 但我想要所有帐户数据 Account 并且只需要first用户数据集 特别是他们的名字 我不想对聚合组执行 最小 或 最大 操作
  • Visual Studio 2015 RC智能感知不显示参数列表

    我从 CTP 6 开始就一直使用 Visual Studio 2015 我注意到当我键入左括号 时 IDE 不显示参数列表 这就是我期待看到的 在上面的屏幕截图中 您可以看到 Create 方法有两个重载 当我键入左括号时会显示该重载 但在
  • 如何从 IntelliJ IDEA 中获取“重新格式化代码”功能?

    我喜欢 IntelliJ IDEA 的 重新格式化代码 Ctrl Alt L 功能 现在我有很多 XML 文件需要查看 我现在要做的是 我打开一个xml文件 全选 复制并粘贴到IntelliJ IDEA打开的xml文件中 然后使用 重新格式
  • printf() 中的井号“#”有何作用?

    int x 0xff printf x x Output 0xff printf x x Ouput ff 为什么输出会有差异 什么是 具体做什么 标准说 7 21 6 2 结果被转换为 替代形式 对于 x 或 X 转换时 非零结果的前缀为
  • OpenGL 压缩纹理和扩展

    I ve an nVidia Quadro NVS 295 PCIe SSE2当我这样做时glGetString GL EXTENSIONS 打印出值并 grep 查找 压缩 我得到这个列表 GL ARB compressed textur
  • 为什么这只返回“是”

    int OnLoad cout lt lt Hi whats your name cin gt gt name system cls cout lt lt Hi lt lt name lt lt lt lt Are you here to
  • 添加事件和提醒在 6.0 marshmallow 中不起作用

    我面临着奇怪的问题 我正在尝试添加事件calendar并且reminder 除了具有以下功能的设备外 它在所有设备上都能正常工作Marshmallow 6 0 当我尝试添加事件时 它还会在此处返回事件 ID 即使我在这里获取事件 ID I
  • Java 中的捕获与抛出异常 [重复]

    这个问题在这里已经有答案了 所以我有两个关于java的一般性问题 第一个是何时在方法主体中使用 try catch 与在声明方法时使用 throws 异常 这是我的意思的一个小演示 这 public void whileChatting t
  • 没有配置数据源来运行此 SQL

    我在用 Java 创建表 用于数据库 时遇到了一些问题 目前 我正在使用 IntelliJ IDEA 当我编写用于创建表的代码时 文本以黄色突出显示 当我查看问题时 我看到以下消息 没有配置数据源来运行此 SQL 并提供高级代码帮助 通过问
  • OpenCV 错误:断言失败(通道()== CV_MAT_CN(dtype))

    我花了很多时间试图解决这个问题 这是我的日志文件中的以下错误 Android error OpenCV Error Assertion failed channels CV MAT CN dtype in void cv Mat copyT
  • 如何在 PHP 中链接方法? [复制]

    这个问题在这里已经有答案了 jQuery 让我可以链接方法 我还记得在 PHP 中看到过同样的内容 所以我写了这样的 class cat function meow echo meow function purr echo purr kit
  • 整数值不正确:第 1 行的列“id”为“”

    我正在尝试插入到我的 mySQL 数据库中 第一列是 id 列 因为它是一个自动增量字段 所以我将其留空 由于某种原因 我无法插入并且收到下面提到的错误 我很感谢对此的任何帮助 我在尝试插入时收到以下错误 Incorrect integer
  • 在 ASP.NET MVC 中将角度属性与 TextBoxFor 一起使用

    我正在使用 ASP NET MVC 和 AngularJs 我是 AngularJs 的新手 我正在尝试创建一个使用 AngularJS 的表单 首先 我有一个登录表单 要求输入用户名和密码 用户名使用Html TextBoxFor如下所示
  • 读取应用程序的清单文件?

    有没有一种简单的方法来读取应用程序已嵌入的清单文件 我正在考虑替代数据流 Windows 清单文件是 Win32 资源 换句话说 它们嵌入到 EXE 或 DLL 的末尾 您可以使用LoadLibraryEx FindResource Loa
  • Swift 3 输入流和输出流连接但没有流

    我在 Swift 3 中使用 StreamDelegate 连接到 Java 套接字时遇到问题 我目前正在重写一个大型 Objective C 项目 其中这段代码运行得像一个魅力 但我似乎无法得到它可以在 Swift 3 中工作 我遇到的问
  • Objective-C 自定义 Getter/Setter

    我正在使用以下由 Xcode 自动生成的 NSManagedObject interface Portion NSManagedObject property nonatomic retain NSNumber volume 我想创建一个自
  • 使用空值更新嵌套结构

    我有一个数据框 其中有一列是嵌套的 StructType StructType 是深层嵌套的 并且可能包含其他结构 现在我想在最底层更新这个专栏 我尝试了 withField 但如果任何顶级结构为空 它就不起作用 我将不胜感激任何帮助 示例
  • 币安加密货币交易所 API“/account”401 响应

    我在使用 Google Sheet 中的脚本调用 Binance cryptoexchange API 时遇到问题 我已经使用示例中的数据检查了我的签名处理https www binance com restapipub html user
  • 在 SQL Server 2008 R2 中引用前一行值进行算术计算

    我正在使用 SQL Server 2008 R2 并且是关系数据库的新手 我需要运行一个简单的计算 但计算涉及使用前一行的值 Example Value of X Value of Y at time t Value of Y at tim