例表D1
nyr P8 P14 P201/1/05 35 32 40
2/1/05 53 21 18
3/1/05 64 12 60
4/1/05 37 31 13
5/1/05 25 52 25
6/1/05 11 30 59
7/1/05 56 42 37
8/1/05 28 16 69
9/1/05 38 45 15
.
.
.下面的SQL怎么写?(1)怎么得到下表D2:用当天的数据减去前一天的(拿P14字段来说)p14 (注解)-11 =(21-32)
-9 =(12-21)
19 =(31-12)
21 =(52-31)
-22 .
12 .
-26 .
29 .
.
.
.
(2)怎么在D1表中直接实现下面的结果:即求完差值后再求一次两两间的差值,也就是得到的数据其实是用D2表的当天数据减去前一天的,但其实是在D1表中直接实现,而不通过D2表.得到下表D3表(拿P14字段来说):p14 (注解) 2 =(12-21)-(21-32)
28 =(31-12)-(12-21)
2 =(52-31)-(31-12)
-43 .
34 .
-38 .
55 .
.
.
.
(3)怎么在D1表中直接实现D3表的差值。也就是求D3表中两两的差值要在D1表中直接实现,怎么得到下表(拿P14字段来说)p14 (注解) 26 =(31-12)-(12-21)-(12-21)-(21-32)
-26 =(52-31)-(31-12)-(31-12)-(12-21)
-45 '
77 .
-72 .
93 .
.
.
.
nyr P8 P14 P201/1/05 35 32 40
2/1/05 53 21 18
3/1/05 64 12 60
4/1/05 37 31 13
5/1/05 25 52 25
6/1/05 11 30 59
7/1/05 56 42 37
8/1/05 28 16 69
9/1/05 38 45 15
.
.
.下面的SQL怎么写?(1)怎么得到下表D2:用当天的数据减去前一天的(拿P14字段来说)p14 (注解)-11 =(21-32)
-9 =(12-21)
19 =(31-12)
21 =(52-31)
-22 .
12 .
-26 .
29 .
.
.
.
(2)怎么在D1表中直接实现下面的结果:即求完差值后再求一次两两间的差值,也就是得到的数据其实是用D2表的当天数据减去前一天的,但其实是在D1表中直接实现,而不通过D2表.得到下表D3表(拿P14字段来说):p14 (注解) 2 =(12-21)-(21-32)
28 =(31-12)-(12-21)
2 =(52-31)-(31-12)
-43 .
34 .
-38 .
55 .
.
.
.
(3)怎么在D1表中直接实现D3表的差值。也就是求D3表中两两的差值要在D1表中直接实现,怎么得到下表(拿P14字段来说)p14 (注解) 26 =(31-12)-(12-21)-(12-21)-(21-32)
-26 =(52-31)-(31-12)-(31-12)-(12-21)
-45 '
77 .
-72 .
93 .
.
.
.
isnull(a.P14,0) - isnull(b.P14,0)
from
D1 a
left join
D1 b
on
datediff(day,b.nyr,a.nyr)=1