我想做一个火车票售票系统,但是在创建数据库的时候碰到了一些麻烦。就是,我要查询两个站点之间都经过了那些站,我不知道怎么创建表。自己创建的表我没法查询,查询不到我想要的结果。
这是我创建的表。
我是使用下面的查询语句,但是得到结果却是一个一个的表。我想把结果仅仅以一个表的形式显示出来
declare @i int ,@j int,@m int,@n int
set @i=(select StationId from dbo.Trains where StationName='郑州')
set @j=(select StationId from dbo.Trains where StationName='孝感')
set @m=1
set @n=@j-@i+2
while @m<@n
begin
select StationId,StationName,convert(varchar,ArriveTime,108)
as 到站时间,convert(varchar,LeaveTime,108)as 离站时间,Distance,Date
from dbo.Trains
where StationId=@i
set @m=@m+1
set @i=@i+1
end
select * from Query
这是我创建的表。
我是使用下面的查询语句,但是得到结果却是一个一个的表。我想把结果仅仅以一个表的形式显示出来
declare @i int ,@j int,@m int,@n int
set @i=(select StationId from dbo.Trains where StationName='郑州')
set @j=(select StationId from dbo.Trains where StationName='孝感')
set @m=1
set @n=@j-@i+2
while @m<@n
begin
select StationId,StationName,convert(varchar,ArriveTime,108)
as 到站时间,convert(varchar,LeaveTime,108)as 离站时间,Distance,Date
from dbo.Trains
where StationId=@i
set @m=@m+1
set @i=@i+1
end
select * from Query
--建立临时表,将查询结果插入临时表
if object_id('Tempdb..#temp') is not null drop table #temp
create table #temp(...)
....begin
insert into #temp
select StationId,StationName,convert(varchar,ArriveTime,108)
as 到站时间,convert(varchar,LeaveTime,108)as 离站时间,Distance,Date
from dbo.Trains
where StationId=@i
set @m=@m+1
set @i=@i+1
end.....
select * from #temp
----这样就是一个表,而不是多个表了。