|
|
楼主 |
发表于 2006-2-22 20:33
|
显示全部楼层
13 m" s* k- S& m1 b" r* A( O/ Z9 u
现有表bill和表payment结构如下,两表通过pay_id关联:
* \ |: i+ F8 ?bill表――bill_id是帐单标识,charge为帐单金额,pay_id为付款编号,PK:bill_id2 r5 ^6 O- r8 m! g$ P* }+ H$ R
bill_id INTEGER% K' N3 X" o' k
charge INTEGER; D, M$ k( N$ U% ^: Q
pay_id INTEGER
2 ]& o; a+ @( o3 Q0 l f
# {4 \7 @% c8 D" apayment表――pay_id为付款编号,charge为付款金额,PK:pay_id( u* ~" H. q% b& x/ f
pay_id INTEGER
5 N# ^ Q" x% a, Bcharge INTEGER
& q+ E4 g6 [7 m7 O O+ ~9 \7 p: {3 ?; i
要求更新payment使charge=bill表中同一pay_id的charge之和。7 }9 w. m8 C! ]! A& C+ {
- A9 l, z3 \3 \& U
27 J( U. Z! I7 S
起始地 目的地 距离(公里)
5 \0 _$ _4 x) u" T3 t& U8 MA B 1000
% b6 h, }5 i6 G! |# IA C 1100
; q; l' u1 W* J! Q% gA D 900( S0 w2 P$ s' }
A E 400# K0 u) R/ C" g* i5 K5 x
B D 300 Q0 Z; [: g! I5 O
D F 6005 l' k, M# O- w# L' m. R9 @( F
E A 400
9 b, L; m. U4 M0 d0 _F G 1000: [# z; F* X: v: u' r- A( ]( l
C B 600% F* Q* o0 R& V% f+ v6 J
请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)。
/ f3 ~2 J0 M! B" N; q. [- t Y! ~
. I8 z4 t- Q9 \7 N5 k+ }7 A3
+ x% [5 U. z8 N表A定义如下:
+ R8 b- }) d/ y9 @4 w1 H1 k5 P/ T' P属性 类型 备注
) r' G1 z" M% M v8 Z3 DId Integer PK+ | F# `+ U" G- v% p2 h
Name Varchar(30)
& Z) L7 z& ^5 ~; H" c# h" aState char(3)
6 A: W+ h- s' W表A中现有1000万条记录,如果客户端要通过分页的方式从表A中取数据,其中每页20条2 \ [! V9 L. i6 P/ `! u& N. N f
记录,有几种方法?描述每种方法如何处理,有什么优缺点?用SQL写出实现代码。+ ]- ]5 s/ i" p. ~1 D W" G0 T! \/ [
2 ?$ }# Z4 Q' b% f0 t9 I, q4
# q& u$ T3 Y% G表A定义如下:
- \# L& d4 Q1 c$ B9 J* [8 j8 v属性 类型
. t: E+ K1 M6 c, {6 I8 D5 |6 G9 e$ BYear Integer/ c' e) Y5 i c0 T3 I. n2 b
Quarter Varchar(30); t8 r2 O" f3 l( A
Amount float
5 R! O* C6 b2 R" O6 _
k9 G; i% \) V2 Q, CYear Quarter Amount
2 t4 A* {! g: U1 J7 R& q2000 1 1.1) w- h3 u8 P) I8 q0 g
2000 2 1.2
6 g1 R' k4 _! Q# T5 G1 p2000 3 1.3- b! f, `( j/ K0 _+ D F' x
2000 4 1.4
6 p% F v, c# J7 P; o4 y* u5 C3 C! z2001 1 2.16 O8 N& S) {; r, z. N: O5 o- {9 C
2001 2 2.26 g6 X& e* r l3 r+ F
2001 3 2.3/ A, s% ^7 ]2 ]
2001 4 2.42 x3 a( B# }( q, X4 F5 v, T7 a
其中每行表表示一个季度的数据。
' E3 u6 a, r6 w7 R* v1 O, P& U |" B Z9 P3 T! P- E" J3 D
如果处理表A中的数据,得到如下的结果。7 J5 A/ z8 |3 J& F$ b+ M) f% m
Year Quarter1 Quarter2 Quarter3 Quarter4
5 D# ~: [$ K3 v* d2000 1.1 1.2 1.3 1.4- p% N2 p' y f" {8 T
2001 2.1 2.2 2.3 2.40 a! ^: ]4 R( d9 R6 E: @/ q; \" @
请用SQL写一段代码实现。 |
|