|
|
楼主 |
发表于 2006-2-22 20:33
|
显示全部楼层
1/ S5 a ?3 k! k, ]
现有表bill和表payment结构如下,两表通过pay_id关联:
! O: N# L, ]. l$ \8 G2 cbill表――bill_id是帐单标识,charge为帐单金额,pay_id为付款编号,PK:bill_id
; {# ~8 g) B! Qbill_id INTEGER) }3 O5 ]4 \4 d5 I" K/ r* X
charge INTEGER/ w) `2 E* O% R8 ]
pay_id INTEGER
4 N8 U- \1 i! o4 }6 @ m4 p" P
& W* e4 ]% ^4 i1 W+ qpayment表――pay_id为付款编号,charge为付款金额,PK:pay_id
# ]3 g: F& J( Q$ f8 rpay_id INTEGER
. B: g4 L, k) W( B& u9 tcharge INTEGER
+ A- V% l" _5 J$ J' E1 ~
9 x& u: [$ \! W, X% m& ^要求更新payment使charge=bill表中同一pay_id的charge之和。% B# T, y; b1 B1 f4 k4 z, O
3 p" T. S3 J8 \ n. Q* _( V2
; l. P, j9 l0 n$ r起始地 目的地 距离(公里)
5 M' I( e2 _% o$ v1 e! `' T$ pA B 1000/ V1 [$ _9 Y4 c! p3 S
A C 1100
' D' L) H/ Q( \3 }9 I$ Y" ~A D 9000 |$ n- S% m( X# q
A E 400
$ e/ {/ ?2 y5 J2 ~7 PB D 300
4 A, U2 N) ^* P2 _1 h6 Z0 QD F 600
9 [7 _1 q& g3 `E A 400
5 J4 N; ?" i) X6 ?3 kF G 1000
1 [3 A# c3 u9 Q( JC B 600
% ~5 F" k( }' I, n% E$ | g请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)。9 k q' X4 u- _6 h& ~; d
" Z/ l. I& x" h, T% F6 S. [3
% i# Q, K: {8 f表A定义如下:
* J0 v1 b: S$ W1 g属性 类型 备注+ o' _ m5 Y: l! o
Id Integer PK
s5 ^; @2 c' y' T$ RName Varchar(30)
9 a5 e, O6 ~. Z5 y6 ?State char(3)
" O* C, U2 F7 f) q) ^8 l) P: }2 O* x表A中现有1000万条记录,如果客户端要通过分页的方式从表A中取数据,其中每页20条
4 k) X- O" H# Y' a* C7 {3 U& [记录,有几种方法?描述每种方法如何处理,有什么优缺点?用SQL写出实现代码。/ _ \" g$ l2 v2 {6 i6 c) q
8 D5 H$ M/ Q1 G' E4% Y2 |* B# N' _
表A定义如下:
' p P" t9 f, F1 t3 k7 i: Y% \属性 类型
7 T" X: \4 S( z" c7 k* X* EYear Integer
; P+ i- h/ J( }2 b8 K( R6 Q& ]Quarter Varchar(30)
5 s9 o z# z0 Q ~' xAmount float
. J6 k1 e$ N5 W5 }$ F% n( I
$ X* h; h3 Q) Y, V* nYear Quarter Amount
N- k% j6 x5 p# h# G8 o2000 1 1.14 H9 r; i/ v0 I; n& E2 b- C0 y( H
2000 2 1.2
3 `2 A5 v& v# L9 B3 U2000 3 1.3
4 v( Y5 n O( V5 n: W( f( I2000 4 1.4
7 D/ w6 d C3 U; n2001 1 2.1
4 Z# C) o; x2 F3 H$ R' [2001 2 2.2, F ^$ T& v- y+ n. E! {
2001 3 2.3
0 m, z! h! G' o" E2001 4 2.4
- n6 K. h; I& d* j3 V其中每行表表示一个季度的数据。
! t1 @( I! K9 H
, Q2 C3 H& j* }) [ N如果处理表A中的数据,得到如下的结果。8 y( o+ i/ k$ N5 ]& E( S
Year Quarter1 Quarter2 Quarter3 Quarter43 {$ m# ^+ D3 e& ], Y2 Y2 Q
2000 1.1 1.2 1.3 1.4& A/ S$ T* H7 Q- Q- A
2001 2.1 2.2 2.3 2.4 q! N9 T. E9 _: j
请用SQL写一段代码实现。 |
|