Tsql 用于获取一行中的值与另一行中的值之差的SQL查询

Tsql 用于获取一行中的值与另一行中的值之差的SQL查询,tsql,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 | 预期结果 |项目编号|日期|值| ------------------------

我的数据如下表所示

|项目编号|日期|值|
--------------------------
|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号项目之间的价值差异。 这是可能得到的。非常感谢您的帮助。

使用自连接:

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

你们能用代码标签重新格式化它,使它可读吗?好了,现在它可读了,你们能解释一下你们想要运行什么函数吗?你要从101中减去102,从201中减去202吗?你想合并两行,结果是两行之差的一行吗?小编辑-应该是“t1.value-t2.value as value”-减法是错误的。