我一直试图在SQL Server中一起使用连接字段作为我的唯一标识符连接三个表,但我注意到它已经返回了重复的记录。如何处理SQL Server连接中的重复记录?
- 表A具有25'003记录
- 表B具有29'387记录
- 表C具有22'938记录
目标是加入B和C到A.
结果共有48'732条记录。
这里是我的查询的一个片段:
Select
a.xxxx, a.yyyy, b.sdsd, c.dffgg
From
[table A] a
Left Join
[table B] b on a.pkey = b.pkey
Left Join
[table C] c on a.pkey = c.pkey.
表A:
PeriodRef OfficeCode OfficeDesc TaskServLineCode TaskServLineDesc ServLineDiv PartnerCode PartnerName ManagerCode ManagerName BillerCode BillerName ClientCode ClientName BusCatCode BusCatDesc GroupCode GroupDesc TaskCode TaskDesc TaskDateOpen TaskDateTerminate InvNumber InvDate LTDInv LTDFee LTDVat LTDCn LTDRec LTDPLFC YTDInv YTDFee YTDVat YTDCn YTDRec YTDPLFC PTDInv PTDFee PTDVat PTDCn PTDRec PTDPLFC CBal BalCurr Bal30 Bal60 Bal90 Bal120 Bal150 Bal180 CM Provision PM Provision CM Provision movement Start CY Provision YTD Provision movement
201710 1 LAGOS A100 e a AAA xcv rg vgg AOA iyh erd2 tggtt yue jd kdk weeer INV Invoice NULL NULL 5yj 00:00.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
201710 1 LAGOS A100 e a AAA cbvc rfgt ghh ZZZZZ ssf 34ef etg assw kjkl kdk jdkjf INV Invoice NULL NULL 6uuj 00:00.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
201710 1 LAGOS A100 e a AAA zcvv ffbb ddg EOK adf 23df sss asd ieel kdk dghjg;js CT07 sff 00:00.0 00:00.0 56 00:00.0 0 4837500 237500 0 5075000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
表B和C具有相同的架构。他们唯一的区别就是这个时期。
PS:这些表没有唯一的标识符,这就是为什么我连接了一些列以获取标识符的原因。谢谢大家。
pkey不是唯一的...... – Backs
如果您包含模式和样本数据以测试 –
,它将有所帮助关于我们可以告诉您的是,表b和/或c中显然存在多行加入标准。 –