2010-07-27 88 views
2

我有如下表所示的数据用于获取一行值与另一行值之差的SQL查询

|商品编号|日期|价值|
--------------------------
| 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之间的差值。 这是可能的。任何帮助是极大的赞赏。

+0

你能重新格式化的代码标记,以便它是可读的? – JNK 2010-07-27 14:16:31

+0

现在确定它是可读的,你能解释你想运行的功能吗?你是从201减去101和202中的102吗? – JNK 2010-07-27 14:22:58

+0

你想俱乐部两排,结果一排是两排不同吗? – 2010-07-27 14:25:23

回答

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 
+0

小编辑 - 应该是“t1.value - t2.value as value” - 减法是错误的。 – 2010-07-27 14:33:49

+0

谢谢你们......这就是我需要的...... – fooman 2010-07-27 15:04:29

+0

@ Neil Moss:谢谢。固定。 – 2010-07-27 16:53:24

相关问题