回答

收藏

MS Access SQL获取两条记录的平均值

技术问答 技术问答 97 人阅读 | 0 人回复 | 2023-09-12

当前,我正在使用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)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则