|
|
楼主 |
发表于 2006-2-22 20:33
|
显示全部楼层
1
# ^# U8 z$ R1 D7 l f现有表bill和表payment结构如下,两表通过pay_id关联:* A4 U. h8 y* Z* F
bill表――bill_id是帐单标识,charge为帐单金额,pay_id为付款编号,PK:bill_id
4 K& U: c, K( Z, u% d- o8 K- {bill_id INTEGER
% J4 S6 a0 K9 y4 `: }charge INTEGER
+ B- A: f5 O9 F! kpay_id INTEGER
) K" _& T5 `/ \" `/ b. ?" f
! v0 v; }& Z7 v! I- x m7 @payment表――pay_id为付款编号,charge为付款金额,PK:pay_id
, M( V2 ?* S1 }# p/ t3 spay_id INTEGER
; E/ k4 W5 B$ o+ H% H+ W0 qcharge INTEGER
, d0 j; B) W2 a2 B2 b5 c H
8 ` F$ P" X4 s& f3 U要求更新payment使charge=bill表中同一pay_id的charge之和。5 s% a; B2 t5 Q, Q: y
) H: \3 F6 L T3 O! L; u2/ c! a. e }: X+ g" n
起始地 目的地 距离(公里)
* {# J4 i9 j- LA B 10005 r2 j! d+ K0 Z6 r7 C: f
A C 11001 D+ |8 a5 V# o
A D 900
2 l/ E' a8 |* j) j+ T6 d! u) ], \) vA E 400* J7 |- _0 o4 X1 Q1 P
B D 300
h* S/ w. x# o7 d, U- UD F 600
4 Z* U8 n) }. ?1 \E A 4000 N% H8 W/ e/ ~. I3 C% U' W# h
F G 1000
! c" P1 w# ]2 ~5 UC B 600" U# x3 i, G) N I
请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)。
" b3 l7 j) n9 l' }5 [* E5 U! x
) q/ T( q( r9 A6 T, B3
7 R+ C0 t J+ o' q. E K表A定义如下:, g8 A' F. U _3 Q w: ]2 L ]
属性 类型 备注
k/ q ?5 ]# d1 ^) G8 Z) s$ UId Integer PK( Y5 ]" l7 d7 T5 ]. X" P8 Y# M5 D
Name Varchar(30)
: `- n7 Z4 a% ^" j) E6 CState char(3)
5 ^; C6 Y. g1 d5 n! S" ]% l' C8 b表A中现有1000万条记录,如果客户端要通过分页的方式从表A中取数据,其中每页20条3 O# ?7 W4 T8 a) x3 {8 `4 K3 K! Z, n
记录,有几种方法?描述每种方法如何处理,有什么优缺点?用SQL写出实现代码。+ N4 c0 b ]$ {) k' i. F
5 S+ j9 L+ V2 X; Z, R; E
4
C- t: ] d5 Y8 J. _9 c0 S& r表A定义如下:
8 {5 D7 e. b3 I; V3 L属性 类型4 o# ]3 l1 `( V& ~3 N3 Q
Year Integer' d1 t0 }- G4 V! t$ [
Quarter Varchar(30)9 C3 ^) |( J7 k* ?3 @. x; l5 W
Amount float( ]7 H& O H( Z3 T% F
4 \* Z& N- R/ \4 P) R, b/ nYear Quarter Amount. S1 U' o( A6 A \9 A9 g; P
2000 1 1.1
) E8 Z3 k' W7 L; L0 a" ~( \, g2000 2 1.2 k- A# e4 ]) o4 J! h, m1 o
2000 3 1.3
/ a' M3 F& Y* i2000 4 1.4
' `0 u8 @% z; s( c# g9 D2001 1 2.13 g" R" ?5 G0 @6 \: M( g) s
2001 2 2.2
. c$ i3 [0 t1 X; N1 p0 y2001 3 2.3
; {3 `$ Q' I% N. F# C2001 4 2.4$ z' ?4 |( R' }7 j' x. U. m4 G
其中每行表表示一个季度的数据。
7 K5 L/ i9 D5 W2 ]0 @+ q! s/ z" j" @. P. K8 X
如果处理表A中的数据,得到如下的结果。
& W+ Y7 G+ W, A& t! {Year Quarter1 Quarter2 Quarter3 Quarter4
6 P: s* _; }9 l8 ]% z! u2000 1.1 1.2 1.3 1.4
0 k X* A) Z/ z4 J) F" L2001 2.1 2.2 2.3 2.4
: D6 h$ p$ e% [. N" z# h请用SQL写一段代码实现。 |
|