| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1639 人关注过本帖
标题:3道笔试的题,来做一下
只看楼主 加入收藏
fengshituo
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-9-20
结帖率:50%
收藏
 问题点数:0 回复次数:6 
3道笔试的题,来做一下
1.已知两个日期2005-10-29和2005-11-01要求生成两个日期之间的所有日期,生成结果如下:
2005-10-29
2005-10-30
2005-10-31
2005-11-01
2.在某大型医院中,由于业务量很大,必须启用了20台客户机为患者挂号。在为每个人挂号时,必须为每次挂号生成唯一的挂号ID,请问:你将在SQLSever中如何设计实现挂号ID的生成(ID需要返回客户机)
3.A表
 定义      代码         类型
发送者     SenderID     INT
邮件标题   MailTile     CHAR(100)
接受者     ReceiveID    INT
其中       SenderID ReceiveID 为表B的外键,表B如下
定义      代码           类型
代码     ID              INT
姓名      Name           CHAR(50)
请用一巨SQL查询出每个邮件的发送者姓名、邮件标题、接受者姓名。
搜索更多相关主题的帖子: 笔试 
2008-03-17 20:48
iamme81
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-3-18
收藏
得分:0 
题1
declare @starttime datetime
declare @endtime datetime
select @starttime='2005/10/29'
select @endtime='2005/11/01'
while(@starttime<=@endtime)
begin
 print convert(char(10),@starttime,120)
 select @starttime=@starttime+1
end
2008-03-18 21:42
iamme81
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-3-18
收藏
得分:0 
题2
使用唯一标识UNIQUEIDENTIFIER标识
create table guaihao(ID UNIQUEIDENTIFIER,date datetime)
每次挂号都将插入一条记录
2008-03-18 21:49
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
1.已知两个日期2005-10-29和2005-11-01要求生成两个日期之间的所有日期,生成结果如下:
2005-10-29
2005-10-30
2005-10-31
2005-11-01

两个解决方案.
2000
先成成一个临时表.
select top 365 dy=identity(int,1,1) into # from syscolumns a,syscolumns b
再加
select dateadd(day,dy,'2005-10-29') date
from # where dateadd(day,dy,'2005-10-29')<='2005-11-01'

2005可以使用CTE
with tmpCTE as
(
  select convert(datetime,'2005-10-29') as date
  union all
  select dateadd(day,1,date)
  from tmpCTE
  where dateadd(day,1,date)<='2005-11-01'
)
select * from tmpCTE

2.在某大型医院中,由于业务量很大,必须启用了20台客户机为患者挂号。在为每个人挂号时,必须为每次挂号生成唯一的挂号ID,请问:你将在SQLSever中如何设计实现挂号ID的生成(ID需要返回客户机)
...这个..可以添加一个挂号表..然后使用事务的方式新增.

3.A表
定义      代码         类型
发送者     SenderID     INT
邮件标题   MailTile     CHAR(100)
接受者     ReceiveID    INT
其中       SenderID ReceiveID 为表B的外键,表B如下
定义      代码           类型
代码     ID              INT
姓名      Name           CHAR(50)
请用一巨SQL查询出每个邮件的发送者姓名、邮件标题、接受者姓名。

select a.name,b.mailtitle,c.name
from 表A b
 left join 表B a
 on b.senderID=a.ID
 left join 表B c
 on b.receiveID=c.id

我的msn: myfend@
2008-03-18 21:55
iamme81
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-3-18
收藏
得分:0 
题3

create table AA
(SenderID INT,
MailTile     CHAR(100),
ReceiveID    INT
)

create table BB
(ID              INT,
Name           CHAR(50)
)

select send.Name,send.MailTile,BB.Name from
(select BB.Name as Name,AA.MailTile as MailTile,AA.ReceiveID as ReceiveID from AA,BB
 where AA.SenderID=BB.ID) as send,BB
where send.ReceiveID=BB.ID
2008-03-18 22:10
lff642
Rank: 1
等 级:新手上路
帖 子:91
专家分:0
注 册:2007-11-28
收藏
得分:0 
---1.
declare @tb table (dt datetime)
declare @bgntime datetime
declare @endtime datetime
set @bgntime='2005-10-29'
set @endtime='2005-11-29'

while @bgntime<=@endtime
begin
   insert @tb select @bgntime
   set @bgntime = dateadd(day,1,@bgntime)
end

select * from @tb
2008-04-29 12:26
zhanghy1028
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2007-3-6
收藏
得分:0 
好复杂
2008-04-29 15:26
快速回复:3道笔试的题,来做一下
数据加载中...
 
   



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

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