Sql server 如何从SQL server获取数据到CityID和CityID库
我有下面的查询,我想显示来自CityID的数据Sql server 如何从SQL server获取数据到CityID和CityID库,sql-server,sql-server-2012,sql-server-2014,Sql Server,Sql Server 2012,Sql Server 2014,我有下面的查询,我想显示来自CityID的数据,到CityID的数据。假设乘客旅行从城市伦敦到城市曼彻斯特。如何编写这样的查询,当我在中使用where子句和时,它在fromcity和tocity中显示相同的值 预期结果如下图所示 Select vh.VoucharId,fCity.CityName as FromCity, tCity.CityName as ToCity, InDate from VoucharHotel vh inner join City fCit
,到CityID的数据。假设乘客旅行从城市
伦敦
到城市
曼彻斯特。如何编写这样的查询,当我在
中使用where
子句和时,它在fromcity
和tocity
中显示相同的值
预期结果如下图所示
Select vh.VoucharId,fCity.CityName as FromCity, tCity.CityName as ToCity, InDate
from VoucharHotel vh
inner join City fCity on vh.City = fCity.CityId inner join City tCity on
vh.City = tCity.CityId
where vh.InDate between '11/15/2018 12:00:00 AM' and '11/16/2018 12:00:00 AM' AND City in (1,2)
以下选项是否可以解决您的问题:
with cte
(VoucherID,FromCity,ToCity,InDate)
as
(
select
vh.VoucharId
, fCity.CityName as FromCity
, tCity.CityName as ToCity
, InDate
from VoucharHotel vh
inner join City fCity on vh.City = fCity.CityId
inner join City tCity on vh.City = tCity.CityId
where vh.InDate between '11/15/2018 12:00:00 AM' and '11/16/2018 12:00:00 AM'
)
select
*
from cte
where City in (1,2)
如果您需要更改,请告诉我。where Clause中的城市无效,当我运行没有where Clause的查询时,它会显示错误的结果。如果您能提供一些示例数据,我将能够更改答案以满足您的需要。好的,等4分钟谢谢,我想我找到了问题。你用他们的身份加入城市,让他们变得一样。为了解决这个问题,我建议您在每个表中添加一个乘客ID列,然后将它们连接在一起,这将得到预期的结果。我也可以为您做,除非您想快速更改示例数据,否则我将为您提供脚本。。。
with cte
(VoucherID,FromCity,ToCity,InDate)
as
(
select
vh.VoucharId
, fCity.CityName as FromCity
, tCity.CityName as ToCity
, InDate
from VoucharHotel vh
inner join City fCity on vh.City = fCity.CityId
inner join City tCity on vh.City = tCity.CityId
where vh.InDate between '11/15/2018 12:00:00 AM' and '11/16/2018 12:00:00 AM'
)
select
*
from cte
where City in (1,2)