【发布时间】:2021-03-12 14:28:27
【问题描述】:
我有两张桌子: 客户信息,如 id、customerName、address 等。以及 RecipientOfGoods - customerId、地址。 两个表中的地址不同,客户表中的地址是注册地址,第二个表中的地址是交货地址。我需要在第一个表中添加收货地址,以便比较两种地址。
use dwh01
SELECT distinct
cus.[BranchId]
,cus.[CustomerId]
,cus.[CustomerName]
,cus.[Street] as StreetByReg
,del.Street as StreetForDelivery
,cus.[Postalcode] as PKByReg
,del.Postalcode as PKForDelivery
,cus.[City] as CityByReg
,del.City as CityForDelivery
,cus.[PhoneNumber]
,cus.[EMail]
,cus.[IsActive]
,cus.[LastChangeDate]
FROM [dwh01].[live].[DimCustomer] cus
join live.DimRecipientOfGoods del on del.RecipientOfGoodsid = cus.Customerid
where cus.BranchId in('1080','1081') and ltrim(cus.CustomerId) = '99060'
这就是我的查询,我确实得到了所需的结果,但我在第二行也得到了相同的信息,但在第二个表的地址列中,我从第一个表中得到了地址。问题是如何删除出现的无用的第二行以及为什么会这样?
【问题讨论】:
-
您能否也向我们提供您用于获得此结果的数据。我的猜测是连接表中只有不止一行,但我需要查看这些数据才能确定
-
您的客户似乎有多个交货行
-
我想答案是:鉴于
DimRecipientOfGoods有重复的行,您希望它显示什么?它应该怎么做?聚合?每组前 1 名?
标签: sql sql-server comparison