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