1

所以我有这个访问数据库表,它基本上每周存储大约相同的数据集。但是,可能存在细微差别,我需要指出。我将如何查询这个?在 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

提前感谢您的任何帮助/提示。

4

1 回答 1

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

这样就可以为您提供数字,您只需将它们放入报告中以使它们看起来更漂亮。

于 2013-11-07T17:50:56.530 回答