Je rejoins une table principale de compte avec des lignes d'environ 4MM avec une table de transactions. Mon problème est que lorsque je fais une jointure gauche du numéro de compte de la table de transaction = numéro de compte de la table principale du compte, je découvre une anomalie dans nos données. Je peux avoir 3 entrées différentes dans le compte principal pour le même numéro de compte. Ceux-ci se rapportent aux caractéristiques du compte. L'anomalie est que, bien que l'information sur l'adresse puisse être la même, dans certains cas, je vois que l'orthographe de la ville est différente. Lorsque je rejoins les deux tables, je ne souhaite que la première instance du numéro de compte dans le compte principal. J'ai vu quelques messages sur l'utilisation de row_number() mais je suis perdu à l'utiliser correctement ici. C'est ce que j'utilise mais obtenir trois enregistrements pour chacun des numéros de compte.Joindre à gauche avec le tableau de droite 1 valeurs
select am.[Customer_Name], am.[svc_city], sr.measure
from [dbo].[PP_SUMMARY_RESIDENTIAL] sr
left join [CIS].[dbo].[Account_Master] am on
(case when (left(sr.fred_account_number,2) = '00') then (right(sr.fred_account_number,len(sr.fred_account_number - 2)))
when (left(sr.fred_account_number,1) = '0') then (right(sr.fred_account_number,len(sr.fred_account_number - 1)))
else sr.fred_account_number
end)
= (select am.accountnumber, row_number() over (order by am.accountnumber) as row) where row = 1
and sr.fred_account_number = '123456789'
Voici un bon point de départ. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –