所以我有这个访问数据库表,它基本上每周存储大致相同的数据集。但是,我需要指出的可能存在细微差别。我该如何查询?在excel中我会创建一个数据透视表,并检查值,但使用动态查询肯定会有更少的时间吗?
示例表:
[Version_Date] | [ItemNumber] | [Weight]
Nov 11 2013 | 1 | 3
Oct 29 2013 | 1 | 3
Nov 11 2013 | 2 | 4
Oct 29 2013 | 2 | 3
Nov 11 2013 | 3 | 2
Oct 29 2013 | 3 | 5
查询应该返回一个像这样的列表
[ItemNumber] | [Oct 29 2013] | [Nov 11 2013 | [Delta]
1 | 3 | 3 | 0
2 | 3 | 4 | 1
3 | 5 | 3 | -2
提前感谢任何帮助/提示。
答案 0 :(得分:1)
对于[ExampleTable]中的样本数据
Version_Date ItemNumber Weight
------------ ---------- ------
2013-11-11 1 3
2013-10-29 1 3
2013-11-11 2 4
2013-10-29 2 3
2013-11-11 3 2
2013-10-29 3 5
查询
SELECT
t1.ItemNumber,
t2.Version_Date AS Previous_Date,
t2.Weight AS Previous_Weight,
t1.Version_Date,
t1.Weight,
t1.Weight - t2.Weight AS Delta
FROM
ExampleTable t1
INNER JOIN
ExampleTable t2
ON t2.ItemNumber = t1.ItemNumber
AND t2.Version_Date < t1.Version_Date
返回
ItemNumber Previous_Date Previous_Weight Version_Date Weight Delta
---------- ------------- --------------- ------------ ------ -----
1 2013-10-29 3 2013-11-11 3 0
2 2013-10-29 3 2013-11-11 4 1
3 2013-10-29 5 2013-11-11 2 -3
这样可以为您提供数字,您只需将它们放入报告中即可使它们看起来漂亮。