Sto correndo nel temuto errore "L'identificatore di più parti non può essere associato" su una stored procedure su cui sto attualmente lavorando. Ho alcune domande riguardo alla domanda qui sotto.Clausola di output: l'identificatore a più parti non può essere associato
- Perché ricevo questo errore?
- Perché questo errore si verifica su ImportFundingDateTime anziché FloorplanId dato che entrambi provengono dalla stessa query, ma FloorplanId è elencato per primo nella clausola output?
- Posso regolare questa query per non ottenere l'errore mantenendo la stessa struttura generale?
.
DECLARE @Results Table(
[FloorPlanId] UNIQUEIDENTIFIER,
[ImportFundingDateTime] DATETIME,
[TimeStamp] VARBINARY(8),
[BusinessId] UNIQUEIDENTIFIER
)
UPDATE CacRecord
SET MatchFound = 1
OUTPUT fp.[FloorplanId], cr.[ImportFundingDateTime],
fp.[TimeStamp], buyer.[BusinessId]
INTO @Results( [FloorplanId], [ImportFundingDateTime],
[TimeStamp], [BusinessId])
FROM CacRecord cr WITH (NOLOCK)
INNER JOIN CacBatch cb WITH (NOLOCK)
ON cr.CacBatchId = cb.CacBatchId
INNER JOIN Floorplan fp WITH (NOLOCK)
ON fp.UnitVIN = cr.ImportVin
AND COALESCE(fp.UnitVIN, '') <> ''
INNER JOIN Business buyer WITH (NOLOCK)
ON buyer.BusinessId = fp.BuyerBusinessId
LEFT OUTER JOIN BusinessContact bc WITH (NOLOCK)
ON bc.BusinessId = buyer.BusinessId
LEFT OUTER JOIN Contact c WITH (NOLOCK)
ON c.ContactId = bc.ContactId
WHERE cb.CacJobInstanceId = @cacJobInstanceId
AND fp.FloorplanStatusId = 1 --Approved
AND COALESCE(cr.ImportVin, '') <> ''
AND 1 =
CASE
WHEN cr.ImportFein = buyer.FederalTaxID
AND COALESCE(cr.ImportFein, '') <> '' THEN 1
WHEN cr.ImportSsn = c.Ssn
AND COALESCE(cr.ImportSsn, '') <> '' THEN 1
ELSE 0
END;
Se si esegue la query utilizzando 'Selezionare fp. [FloorplanId], ed. [ImportFundingDateTime], fp. [Timestamp], il compratore. [BusinessID]' e le vostre e dove clausole, ci si esegue senza errore? – Thomas