|
当前,我正在使用MS Excel来执行此操作,但是我想知道在MS Access中是否可行。
0 T7 y. h3 k! r1 Q& u: Y4 Z我想获取前一个小时和当前小时的平均值,然后将该平均值放入当前小时记录中。一个限制是不查询第一条记录,因为它没有前一个小时。
( N7 z/ _% ^- `# Z2 J如何执行下面的伪sql代码?
% |1 ?) t7 i" i# W* [8 J' SSELECT Date
8 v2 ^4 F. J% D, y ,Hour6 a0 I+ _) E+ t% t3 i. H
,Node
9 k8 z9 r2 D3 {' t5 l ,Average (Value,"Value from previous hour, e.g (Hour-1) with the same date and node")
" ^! T) t$ x, ^/ Q" GFROM tblInput% q7 S4 R( n, J% P( D
WHERE Hour = 2,3,4( L% w* U$ n3 N! x, c$ A
tblInput:
; G& W7 W9 z, L; c+----------+------+------+------+& S, i0 @6 T' v6 Y3 `0 \
| Date | Hour | Node |Value |* L' V4 n9 G7 a$ k; k
+----------+------+------+------+' R( t4 a% s t0 E9 |+ M
| ... | ... | ... | ... |
% j- f4 d* B$ R! e2 H# t) q| 1/1/2-18 | 1 | AAA | 5 |
4 M ]. ~0 Q1 s| 1/1/2-18 | 2 | AAA | 10 |
( E0 N) T1 X. v9 c9 @5 ~4 H| 1/1/2-18 | 3 | AAA | 15 |0 X) N1 M8 `5 j# C. @
| 1/1/2-18 | 4 | AAA | 20 |
+ n6 |+ K$ x7 I1 y% t0 c# P7 r| 1/1/2-18 | 1 | BBB | 4 |
( t8 ?: \) e$ S4 H| 1/1/2-18 | 2 | BBB | 8 |; m& ^% o" p& M( K. R6 y
| 1/1/2-18 | 3 | BBB | 12 |
! q; B) H* [/ E5 I1 N5 {5 ?| 1/1/2-18 | 4 | BBB | 16 |, K" c; \- L" s$ l$ @
| ... | ... | ... | ... |% P+ x r6 g" [
+----------+------+------+------+# w+ Y" _$ ~. K. j: f% O8 o
输出:4 }3 j: Z% }/ J; {; B; }0 o
+----------+------+------+------+% k2 A. J/ J$ b/ e' U% M3 g) O4 K4 h
| Date | Hour | Node | Ave |: P c3 B: k" l* ?8 s6 ?
+----------+------+------+------+
, h' y4 J2 f6 W( [5 H| 1/1/2-18 | 2 | AAA | 7.5 |
) x. @$ V( P6 s- t| 1/1/2-18 | 3 | AAA | 12.5 |: ?8 I1 O: y+ s4 Z
| 1/1/2-18 | 4 | AAA | 17.5 |
% `6 O+ ` H, Q7 `7 {| 1/1/2-18 | 2 | BBB | 6 |
9 T, Z# v9 z( o: [% {/ f| 1/1/2-18 | 3 | BBB | 10 |
2 G! e, I$ ^; ?1 i; g3 C O| 1/1/2-18 | 4 | BBB | 14 |3 j4 \; O3 Y2 m9 U/ F! w
+----------+------+------+------+
0 v0 q# X* t0 ?" Q6 N( ^, ~
4 P, O6 U9 D# o3 k% E3 W, g解决方案:
. R) ^( ?" O, v1 r4 P6 z8 h8 r 2 U4 n6 _! ?! U4 O' o! j U% C/ x
) W$ v+ [% s9 l3 c" z* s) R- o K, U6 D" F3 X- ?
它是:2 z/ ?) L9 r+ z$ `% ] ~; G' ^8 s
SELECT
0 K: F9 u1 n2 k1 Y [Date],9 b4 ~. c, h* Z5 V- P/ ]4 r
Hour,$ [- {! F$ j/ W* G: j* c
Node,
* e6 \: O' u1 y- P2 {! X: u (Value + 2 \: p' e- D8 C4 c. m9 \
(Select Value& j6 t; J, ]2 D8 @
From tblInput As T
! x' Y: e9 u/ s) n0 w2 l% h Where : L& F& E0 _, i' d7 G/ |6 b7 y
T.Node = tblInput.Node And; A# T& C8 X! H7 z
T.Date = tblInput.Date And
9 e5 ~" q' e# d4 R6 q2 m4 X: J" { T.Hour = tblInput.Hour - 1)) / 2
; W0 Q3 M8 T7 t! f3 w4 xFROM
/ [$ n' @0 J/ v/ r tblInput
& `& m; F5 k' C( lWHERE
( E2 C7 M7 S6 p( ~& m2 d. @ Hour In (2,3,4) |
|