从前一个日期检索特定字段

Posted

技术标签:

【中文标题】从前一个日期检索特定字段【英文标题】:retrieve specific field from a previous date 【发布时间】:2012-06-12 19:10:34 【问题描述】:

以下信息当前存在于数据库中。

ID -- 公司 --- 当前值 ---- 日期 1 -- 公司 1 ----- 12 --------- 2010 年 3 月 25 日 2 -- 公司 1 ----- 17 --------- 2011 年 3 月 25 日 3 -- 公司 2 -------- 65 --------- 2011 年 4 月 23 日 4 -- 公司 1 -------- 45 --------- 2012 年 3 月 25 日 5 -- 公司 2 -------- 34 --------- 2012 年 4 月 23 日

有没有什么方法可以计算出每个公司上一年的值?

ID -- 公司 --- 当前值 --- 去年值 ---- 日期 1 -- 公司 1 -------- 12 ---------------- 0 --------- 2010 年 3 月 25 日 2 -- 公司 1 ------- 17 --------------- 12 --------- 2011 年 3 月 25 日 3 -- 公司 2 -------- 65 ---------------- 0 --------- 2011 年 4 月 23 日 4 -- 公司 1 ------- 45 --------------- 17 --------- 2012 年 3 月 25 日 5 -- 公司 2 ------- 34 --------------- 65 --------- 2012 年 4 月 23 日

我尝试了很多解决方案,包括搜索这个网站,但没有任何效果。

【问题讨论】:

【参考方案1】:

由于您的表的日期似乎正好相隔一年,因此可以简单地通过左连接来完成。

SELECT a.ID, 
    a.Company, 
    a.CurrentValue, 
    ISNULL(b.CurrentValue, 0) AS 'LastYearValue',
    a.Date
FROM dbo.Table a
LEFT JOIN dbo.Table b ON a.Company = b.Company AND b.Date = DATEADD(YEAR, -1, a.Date)

【讨论】:

我目前正在尝试此操作,但在第 4 行出现错误,其中包含 null 语句

以上是关于从前一个日期检索特定字段的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE PL/SQL - 使用 SYSDATE 检索特定日期的数据时出现检索问题

在颤动的蜂巢中按日期检索数据

如何在 Spring Boot 中使用特定日期范围和聚合从 MongoDB 数据库中检索数据?

Mysql查询检索帖子并根据特定日期间隔进行过滤

JDA 在特定日期检索消息

SQL 检索特定日期时间的历史传感器值