0

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

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 日

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

4

1 回答 1

0

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

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)
于 2012-06-12T19:26:16.697 回答