【发布时间】:2018-11-21 08:09:09
【问题描述】:
我有以下查询我想显示数据 fromCityId AND ToCityId 。假设乘客旅行fromCity伦敦toCity曼彻斯特。如何编写这样的查询,当我使用where 子句和in 时,它在fromcity 和tocity 中显示相同的值
预期结果如下图
Select vh.VoucharId,fCity.CityName as FromCity, tCity.CityName as ToCity, InDate
from VoucharHotel vh
inner join City fCity on vh.CityId = fCity.CityId inner join City tCity on
vh.CityId = tCity.CityId
where vh.InDate between '11/15/2018 12:00:00 AM' and '11/16/2018 12:00:00 AM' AND vh.CityId in (1,2)
CREATE TABLE VoucharHotel (
ID int IDENTITY(1,1) PRIMARY KEY,
VoucharId Int ,
CityId int,
HotelId int,
InDate Datetime,
OutDate Datetime
);
CREATE TABLE City (
CityId int IDENTITY(1,1) PRIMARY KEY,
CityName varchar(200),
);
insert into City Values('London')
insert into City Values('Manchester')
insert into City Values('Birmingham')
insert into City Values('Leeds')
CREATE TABLE HotelMaster (
HotelId int IDENTITY(1,1) PRIMARY KEY,
HotelName varchar(200),
);
insert into HotelMaster Values('London Hotel')
insert into HotelMaster Values('Manchester Hotel')
insert into HotelMaster Values('Birmingham Hotel')
insert into HotelMaster Values('Leeds Hotel')
Insert into VoucharHotel Values(22,1,1,'11/15/2018', '11/16/2018')
Insert into VoucharHotel Values(22,2,2,'11/16/2018', '11/18/2018')
Insert into VoucharHotel Values(22,1,1,'11/18/2018', '11/20/2018')
Insert into VoucharHotel Values(23,2,2,'11/16/2018', '11/17/2018')
Insert into VoucharHotel Values(23,4,4,'11/17/2018', '11/20/2018')
Insert into VoucharHotel Values(23,2,2,'11/20/2018', '11/26/2018')
【问题讨论】:
-
我在您的示例数据中没有看到任何
VoucharId 24 -
它的示例图片
-
如何获取我想要的上图数据
-
您是否需要相同 fromCity、toCity 和 inDate 的最大凭证 ID?
-
我希望用户从城市用户旅行
标签: sql-server sql-server-2008 sql-server-2012 sql-server-2014