【发布时间】:2015-09-28 14:59:47
【问题描述】:
我有一个包含年度数据点和季度数据点的数据表。我想从相应的先前年度条目中减去季度数据点,例如2014 年年度 - 2014 年第三季度,使用 t-SQL。我为每个条目都有一个 id 变量,加上一个 reconcile id 变量,该变量显示哪个季度条目对应于哪个年度条目。见下文:
CurrentDate PreviousDate Value Entry Id Reconcile Id Annual/Quarterly
9/30/2012 9/30/2011 112 2 3 Annual
9/30/2013 9/30/2012 123 1 2 Annual
9/30/2014 9/30/2013 123.5 9 1 Annual
12/31/2013 9/30/2014 124 4 1 Quarterly
3/31/2014 12/31/2013 124.5 5 1 Quarterly
6/30/2014 3/31/2014 125 6 1 Quarterly
9/30/2014 6/30/2014 125.5 7 1 Quarterly
12/31/2014 9/30/2014 126 10 9 Quarterly
3/31/2015 12/31/2014 126.5 11 9 Quarterly
6/30/2015 3/31/2015 127 12 9 Quarterly
例如,季度分录的核对 ID 9 对应于年度分录的条目 ID 9。
我有代码可以从当前条目中减去之前的条目,但我不知道如何从条目 ID 和协调 ID 相同的年度条目中减去季度条目。
这是我正在使用的代码,它导致正确的计算,但结果的数量增加了很多行。我也尝试过将其作为内部连接。我只想要原来的 10 行,加上一个新的差异列:
SELECT DISTINCT T1.[EntryID]
, [T1].[RECONCILEID]
, [T1].[CurrentDate]
, [T1].[Annual_Quarterly]
, [T1].[Value]
, [T1].[Value]-T2.[Value] AS Difference
FROM Table T1
LEFT JOIN Table T2 ON T2.EntryID = T1.RECONCILEID;
【问题讨论】:
-
你能举个例子说明你想要得到的结果吗?
-
这可以通过自联接或相关子查询轻松完成。谷歌一个或两个例子。
-
是我遗漏了什么,还是您按每个字段分组?使用“select distinct”不是更简单吗?
-
@JulienBlanchard 公平点。已更新。
-
在您的问题中,听起来您想在 entryID = reconcileID 上将您的表加入到自身中,但是在您的示例中展示了您尝试过的内容,您引入了 statementID。 statementID 字段与 entryID 和 reconcileID 有什么关系?
标签: sql sql-server