0

我遇到了一个问题,我的输出中出现了一些不正确的值。我将下面突出显示的表格列与底部的圆圈列绑定。突出显示的列上的 service_id 是唯一的,但我需要绑定 booking_id 来检索信息(如果这有意义的话。我最终得到的是我得到重复的顶层表,或者价格是错误的。我应该在顶部表格中仅获得 5 行。

在此处输入图像描述

这是我的代码。我怀疑我可能做错了加入?

SELECT bad.agent as Agents,
dog.SUPPLIER as SUPPLIER,
bad.status as TheStatus,
country.analysis_master1 as Country,
ftb.booking_actual_retail as BookingActualRetail,
ftb.Booking_Actual_Cost as BookingCost,
ftb.Booking_Actual_Retail_inc as BookingRetailINC,
fts.Service_Id,
fts.Service_Actual_Retail_inc as ServiceActualCostInc,
Product.SERVICE,
Product.SL_STATUS as SLSTATUS,
cat.name as Product2,
bad.LAST_SERVICE_DATE as Servicedate,
bad.LW_DATE as LWDATE,
ftb.Entered_Date as DATEENTERED,
ftb.Booking_Pax as PEOPLE,
ftb.Booking_Children as KIDS,
bad.TRAVELDATE as TRAVELDATE,
bad.FULL_REFERENCE
from BHD bad
inner join FTB on bad.FULL_REFERENCE = ftb.booking_reference
inner join FTS on FTB.Booking_Id = fts.Booking_Id
inner join DRM Country on bad.agent = country.code
inner join BSL Product on bad.BHD_ID = Product.BHD_ID
inner join SRV cat on Product.SERVICE = cat.CODE
inner join OPT dog on Product.OPT_ID = dog.OPT_ID
where bad.STATUS = 'IV' AND bad.FULL_REFERENCE = 'LTIT129488'

更新:

好的,所以看起来这里的连接会导致多个输出:

inner join FTS on FTB.Booking_Id = fts.Booking_Id

我已经包含了这两个表、它们的标题和示例数据

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

1

您在某处以错误的方式加入了服务或供应商。请再次检查此行。

inner join SRV cat on Product.SERVICE = cat.CODE

根据您提供的屏幕截图,查看同一产品的多个服务

更新的解决方案:

根据您更新的屏幕截图,我发现了问题……您已经像这样加入了。

    inner join FTB on bad.FULL_REFERENCE = ftb.booking_reference

在此联接中,您的一个表具有针对预订参考的单条记录,而另一个表具有针对预订参考的多条记录。这就是为什么您在输出中获得多条记录的原因。

在此处输入图像描述

删除此连接,您的问题将得到解决。如果你真的想要这个表中的数据,那么你可以用其他方式选择,比如使用外部应用等。

于 2019-06-17T16:55:41.880 回答