从前一个日期检索特定字段
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 检索特定日期的数据时出现检索问题