如何获得与其他表不同的内部联接的第一个值

乔恩斯

我有下面的图片和查询。问题是我的查询显示我错误的值,在多个记录中没有显示正确的hotelname,这意味着我想要VoucherHotelTable中的第一家酒店,但由于与众不同,它向我显示了第二家酒店,我认为请您帮我解决该问题

Select distinct v.VoucherId,u.Name,v.ArrivalFromCity,
       CAST(v.ArrivalDate  AS DATE) as ADDate, v.ArrivalFlightNo, hm.HotelName
from  VoucherMaster v
inner join UserMaster u on  v.AgentId = u.UserId
inner join VoucharHotel vh on v.VoucherId = vh.VoucharId
inner join HotelMaster hm on vh.HotelId = hm.HotelId
inner join AirportTerminal t on  v.ArrivalTerminalId = t.AirprtTerminalId 
where v.ArrivalDate  between '11/15/2018 12:00:00 AM'
    and '11/16/2018 12:00:00 AM'  AND v.ArrivalSectorId = 3

查看图片

此查询通过分区工作。尝试这个。rank()函数应为每个凭证返回酒店的等级。

;with VoucherHotelRnk as (
    select voucherId, hotelId, date, rank() over(partition by voucherId order by date) rnk
    from VoucharHotel
)
Select v.VoucherId,u.Name,v.ArrivalFromCity,
       CAST(v.ArrivalDate  AS DATE) as ADDate, v.ArrivalFlightNo, hm.HotelName
from  VoucherMaster v
inner join UserMaster u on  v.AgentId = u.UserId
inner join VoucherHotelRnk vh on v.VoucherId = vh.VoucherId and vh.rnk = 1
inner join HotelMaster hm on vh.HotelId = hm.HotelId
inner join AirportTerminal t on  v.ArrivalTerminalId = t.AirprtTerminalId 
where v.ArrivalDate  between '11/15/2018 12:00:00 AM'
    and '11/16/2018 12:00:00 AM'  AND v.ArrivalSectorId = 3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使网格的第一个和最后一个元素与其他元素的大小不同?

如何将数组的第一个元素与其中的每个其他元素耦合以获得元组列表?

如何使DIV中的第一个元素具有与其他元素不同的CSS?

如何连接 2 个表并在 PostgreSQL 的第一个表中嵌套其他表的值列表?

如何获得内部联接的第一个实例以在 SQL Server 中执行“选择进入”?

如何在路由历史记录中获得与当前URL不同的第一个URL?

如何基于组的第一个值联接两个表

如何获得与morphToMany关系的第一个对象?

比较第一个单元格与其他行和计数匹配项的值

更改列中的所有第一个值,并与其他列分组

如何在多列标签上获得第一个非其他

通过ID将一个表与其他两个表联接

PHP While 循环在另一个内部,第一个 while 不返回其他值

Javascript如何将数组中的第一个元素与其他元素进行比较

如何使用Java 8流获得每个不同键的第一个值?

推导第一个模板参数与其他默认模板参数

如何从其他列中提取列中的所有第一个值

如何从其他列中提取列中的所有第一个值?

如何获得Lua中的第一个表值

在其他表中查找匹配值并将相邻值复制回第一个表

如果第一个表中还有其他数据,如何从第二个表中获取单个值?

通过聚合函数中其他列(的第一个值)对不同的列值进行排序

内部联接两个表,并为第二个表的第一个表中的每个条目返回最大值

如何在javascript中获取对象的第一个,最后一个和其他值?

内部联接?userid与其他userid的两个表联接

保留所有第一个单元格与其他行的第一个单元格匹配的行

在 angular7 中,如何从 2 个不同的依赖 http 调用获得组合响应。第一个 http 调用返回一个对象数组和其他相关数据

我如何内部联接2个SQL表,但仅从第二个表中获取第一个结果?

UICollectionView。如何在没有动画的情况下将viewController与其他元素(不仅是第一个)一起显示?