| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 614 人关注过本帖
标题:有关 SQL server 2000查询 的问题?
只看楼主 加入收藏
伊人醉
Rank: 1
等 级:新手上路
帖 子:9
专家分:3
注 册:2011-8-20
结帖率:100%
收藏
 问题点数:0 回复次数:4 
有关 SQL server 2000查询 的问题?
某货运站的数据库,其中存放以下四个表:
货车(货车编号,车牌,出厂日期,司机,最大运输量)
司机(司机编号,姓名,联系方式,驾驶证日期)
货物(货物编号,货物名称,产地,单价,货物总量)
运输记录(运输单编号,货车编号,货物编号,运输量,交易类型,运输日期)
试用SQL语言完成下列功能:
1建表,在定义中要求声明:(5分)
(1)    每个表的主外码;
(2) 时间日期的数据类型是datetime;
(3) 运输量,货物总量,各种数量大于等于0,驾车年龄在0和40年之间,外码不能为空。2往表中插入数据(5分)
货车(001,东风,2008-7-2,101,50000
002,解放,2004-5-4,102,70000
003,五菱,2003-2-6,103,150000
004,五十铃,2009-9-10,105,75000
005,长安,2010-8-2,106,65000
006,东风,2011-1-26,104,80000)
司机(101,张三,139,2001-1-5
102,李四,152,1998-2-15
103,唐二,187,1999-6-23
104,江五,133,2002-4-14
105,牛六,189,2005-5-12
106,郭七,135,2009-7-6)
货物(201,苹果,山东,4,300000
202,香蕉,海南,4,400000
203,桔子,江西,5,550000
204,蜜柚,广东,4.5,450000)
运输记录(1,001,201,40000,运入,2009-1-9
2,002,201,60000,运出,2009-1-10
3,003,204,100000,运入,2009-2-1
4,001,204,45000,运出,2009-4-2
5,004,202,72000,运出,2009-4-2
6,003,202,120000,运出,2009-4-2
7,002,203,55000,运入,2009-4-5
8,004,202,65000,运出,2009-4-5
9,005,204,40000,运入,2009-4-8
10,006,203,70000,运出,2009-5-1
11,005,204,50000,运入,2009-5-1
12,006,203,75000,运出,2009-5-8)
3.用SQL语句完成下列查询:(10分*3=30分)
(2)找出同一辆货车两次运输间隔时间第二长的货车编号、车主及车主联系方式。
搜索更多相关主题的帖子: 货车 联系方式 server 
2011-11-09 20:51
zhouixi
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-7-4
收藏
得分:0 
select 货车编号,车主,车主联系方式 from 表名
 where  exists(select  top 2 (运出时间-运入时间) as 时间 FROM  表名
 order by  时间 desc)AS 表别名  这样可以吗?
2011-12-14 14:42
pxr
Rank: 2
等 级:等待验证会员
帖 子:32
专家分:69
注 册:2011-10-17
收藏
得分:0 
新手,进来看看。

懒惰是一种上瘾的毒药,它既毒害人的肉体,也毒害人的心灵。
2011-12-15 21:21
johnjiang
Rank: 2
等 级:论坛游民
帖 子:3
专家分:10
注 册:2011-12-20
收藏
得分:0 
Sql2005中的语句:
SELECT cid,sname,tel FROM car,Driver WHERE car.did=Driver.did and car.cid=(SELECT cid FROM(
SELECT a.cid,DATEDIFF(day,b.mindate,a.maxdate)AS val, ROW_NUMBER()OVER( ORDER BY DATEDIFF(day,b.mindate,a.maxdate) DESC)AS row
FROM( SELECT cid,MAX(ldate)AS maxdate FROM TrafficLog GROUP BY cid)a,(SELECT cid,MIN(ldate)AS mindate FROM TrafficLog GROUP BY cid)b
WHERE a.cid=b.cid
)c WHERE c.row=2)

如果是sql2000的话,请将ROW_NUMBER方法换成top的方式,即:
SELECT cid,sname,tel FROM car,Driver WHERE car.did=Driver.did and car.cid=(SELECT TOP 1 cid FROM ( SELECT TOP 2 * FROM(
SELECT a.cid,DATEDIFF(day,b.mindate,a.maxdate)AS val
FROM( SELECT cid,MAX(ldate)AS maxdate FROM TrafficLog GROUP BY cid)a,(SELECT cid,MIN(ldate)AS mindate FROM TrafficLog GROUP BY cid)b
WHERE a.cid=b.cid
)c ORDER BY val DESC)d ORDER BY d.val ASC)
2011-12-20 11:26
panxingren
Rank: 3Rank: 3
来 自:广西
等 级:论坛游侠
威 望:1
帖 子:49
专家分:191
注 册:2011-7-13
收藏
得分:0 
赞同4楼。

工作、学习是一种心态,不求一日千里,但求循序渐进。
2011-12-21 20:04
快速回复:有关 SQL server 2000查询 的问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025023 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved