【正确答案】
【答案解析】(1)产品发运数据库的逻辑结构
fdh (ydh,khh,fs,fhrq)主键:ydh,外键:khh
kh (khh,khm,addr)主键:khh
hpms (hpm,ydh,dj,zl)主键:hpm+ydh,外键:ydh
yzf(xm,ydh,fy)主键:xm+ydh,外键:ydh
(2)查询的SQL语句:
①SELECT kh. khm, kh.addr FROM kh, fhd
WHERE kh. khh=fhd.khh AND fhd.fhrq='2001年2月28日'
或
SELECT khm, addr FROM kh WHERE kh. khh IN
(SELECT fhd. khh FROM fhd WHERE fhd. fhrq='2001年2月28日')
②SELECT yzf. ydh, yzf. xm, yzf. fy FROM yzf, fhd
WHERE yzf. ydh=fhd. ydh AND fhd. fhrq='2001年2月28日'AND fhd.fs='铁路'
或
SELECT ydh,xm,fy FROM yzf WHERE yzf. ydh IN
(SELECT fhd. ydh FROM fhd WHERE fhd. fhrq='2001年2月28日'AND fhd. fs='铁路')
③SELECT hpms. hpm, hpms. dj, hpms. zl, hpms. dj* hpms. zl FROM hpms, fhd
WHERE hpms. ydh=fhd.ydh AND fhd. fhrq='2001年2月28日'
或
SELECT hpm, dj, zl, dj*zl FROM hpms WHERE hpms. ydh IN
(SELECT fhd. ydh FROM fhd WHERE fhd. fhrq='2001年2月28日')
④SElECT hpm, sum(zl)FROM hpms, fhd WHERE hpms. ydh=fhd. ydh AND
fhd. fhrq>='2001年2月28日'AND fhd. fhrq<='2001年2月28日'GROUP BY hpm
或
SELECT hpm, sum(zl) FROM hpms WHERE hpms. ydh IN
(SELECT fhd. ydh FROM fhd WHERE fhd. fhrq>='2001年2月28日' AND fhd. fhrq<= '2001年2月28日') GROUPBY hpm