SQL Query用于获取一行中的值与另一行中的值之间的差异

时间:2010-07-27 14:15:17

标签: tsql

我的数据如下表所示

|货号|日期|价值|
--------------------------
| 101 | 201002 | 5 |
| 102 | 201002 | 3 |
| 201 | 201002 | 7 |
| 202 | 201002 | 2 |

| 101 | 201003 | 6 |
| 102 | 201003 | 3 |
| 201 | 201003 | 7 |
| 202 | 201003 | 1 |

预期结果
|产品编号|日期|价值|
--------------------------
| 100 | 201002 | 2 |
| 200 | 201002 | 5 |
| 100 | 201003 | 3 |
| 200 | 201003 | 6 |

抱歉格式化。我现在重新格式化了。我试图获得201002日期项目号101和102之间的价值差异。 这有可能得到。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

使用自我加入:

SELECT
    T1.ItemNo - 1 AS ItemNo,
    T1.Date,
    T1.Value - T2.Value AS Value
FROM table1 T1
JOIN table1 T2
ON T1.Date = T2.Date
AND T1.ItemNo + 1 = T2.ItemNo