Ich versuche zu ermitteln, warum ich mehrere Ergebnisse von dieser Abfrage bekomme. Ich muss sicherstellen, dass ich nur 1 Ergebnis pro UserId habe.Abfrage, die mehrere Ergebnisse zurückgibt. Nur erwartet 1.
declare @UserId INT = 1
SELECT u.UserId,
cfeLead.ElementName AS 'LeadSource' ,
rt.ReferralType AS 'MarketingSource' ,
cfe.ElementName AS 'Corporate'
FROM Users u
LEFT JOIN ReferralType rt ON rt.ReferralTypeID = u.ReferralTypeID
LEFT JOIN UserCustomFields ucf ON ucf.UserID = u.UserID
LEFT JOIN CustomFields cf ON cf.CustomFieldID = ucf.CustomFieldID
AND (cf.CustomFieldName = 'Corporate' OR cf.CustomFieldName = 'Corporate Membership')
LEFT JOIN CustomFieldElements cfe ON cfe.CustomFieldID = cf.CustomFieldID
AND ucf.CustomFieldElementID = cfe.CustomFieldElementID
LEFT JOIN CustomFields cfLead ON cfLead.CustomFieldID = ucf.CustomFieldID
AND cfLead.CustomFieldName = 'Lead Source'
LEFT JOIN CustomFieldElements cfeLead ON cfeLead.CustomFieldID = cfLead.CustomFieldID
AND ucf.CustomFieldElementID = cfeLead.CustomFieldElementID
WHERE u.UserID = @UserId
Mein Ergebnis zeigt:
UserId LeadSource MarketingSource Corporate
1 NULL DirectMail 180 Center
1 Walkin DirectMail NULL
Ich mag würde, um zu sehen:
UserId LeadSource MarketingSource Corporate
1 Walkin DirectMail 180 Center
Meine Vermutung ist, dass die Multiple Linke tritt dies verursachen, aber ich kann nicht scheinen, um das zu verfolgen. Vielen Dank im Voraus.
Kommentieren Sie alle Join-Bedingungen und versuchen Sie, die Kommentare nacheinander zu entfernen, um herauszufinden, welcher in mehreren Zeilen resultiert –