我有如下表:
一个和下一个在计算领域的SQL记录
ID GROUPID oDate oTime Value
1 A 2014-06-01 00:00:00 100
2 A 2014-06-01 01:00:00 200
3 A 2014-06-01 02:00:00 300
4 A 2014-06-01 03:00:00 400
5 A 2014-06-01 04:00:00 0
6 A 2014-06-01 05:00:00 10
7 A 2014-06-01 06:00:00 20
我想有以下结果:
A B C D E F
----------------------------------------------------------------------
1 ID GROUPID oDate oTime Value Result
2 1 A 2014-06-01 00:00:00 100
3 2 A 2014-06-01 01:00:00 200 100
4 3 A 2014-06-01 02:00:00 300 100
5 4 A 2014-06-01 03:00:00 400 100
6 5 A 2014-06-01 04:00:00 0 55
7 6 A 2014-06-01 05:00:00 10 10
8 7 A 2014-06-01 06:00:00 20 10
哪里Result
公式为(Excel格式) :
我把公式放在F3单元格上 - >=IF(E3=0, IF(E4=0, 0, (F2+F4)/2), (E3-E2)
如何在SQL语法中执行此操作?有谁知道如何解决这个问题?
谢谢。
找ROW_NUMBER()和OVER()函数从事务SQL – 2014-10-08 06:51:21
喜@GrzegorzGajos,谢谢。我知道我需要使用row_number和over(也许)。但问题是,'结果'字段是计算列。让我说我把这个列在sql视图中。 – Haminteu 2014-10-08 06:59:44
你试过'LAG'/'LEAD'吗? – Recursive 2014-10-08 06:59:56