2012-05-30 14 views
7

Eventuali duplicati:
The multi-part identifier could not be boundL'identificatore in più parti non poteva essere vincolato

Questa è la mia query che non vogliono lavorare.

Dice: L'identificatore di più parti "dbo.RunSequenceBatch.RunSequenceBatchName" non può essere associato.

Potresti per favore avvisare?

Grazie in anticipo !!! :)

SELECT '30 May' AS [Date], 
[RunSeq].[RunSequenceBatchName] AS [Batch Job Name] , 
RunSeqCat.CategoryDescription AS [Development Name] , 
[Systems].SystemName AS [System Area] , 
CAST((SUM(DumpSM37_Env3.Duration)/60) AS NUMERIC(10, 2)) AS [Duration (mins)] 
FROM [dbo].[RunSequenceBatch] AS RunSeq 
LEFT JOIN DumpSM37_Env3 ON ([RunSeq].[RunSequenceBatchName] = DumpSM37_Env3.[Job] 
AND DumpSM37_Env3.[ImportDate] BETWEEN '30 May 2012 00:00:00' AND '30 May 2012 23:59:59'), 
[dbo].[RunSequenceType] AS RunSeqType, 
[dbo].[RunSequenceFrequency] AS RunSeqFrequency, 
RunSequenceCategory AS RunSeqCat, Category, [Systems] 
WHERE RunSeq.Status = 'Active' 
AND RunSeqFrequency.RunSequenceBatchID = RunSeq.RunSequenceBatchID 
AND RunSeq.RunSequenceTypeID = RunSeqType.RunSequenceTypeID 
AND RunSeqCat.CategoryDescription = Category.Description 
AND Category.SystemArea = [Systems].SystemID 
AND DumpSM37_Env3.[Duration] > 0 
AND RunSeq.RunSequenceTypeID = 1 
AND RunSeqCat.RunSequenceBatchID = RunSeq.RunSequenceBatchID 
GROUP BY dbo.RunSequenceBatch.RunSequenceBatchName, DumpSM37_Env3.WorkerProcessID, 
ORDER BY [RunSeqFrequency].[Frequency] ASC, 
[RunSeqFrequency].[StartTime] ASC 
+0

Potrebbe essere un errore di battitura, ma hai RunSeq.RunSequenceBatchName e ulteriormente nella query RunSequence.RunSequenceBatchName. Sembra essere lo stesso con nomi diversi? –

+0

Considerare l'utilizzo di alias brevi per le tabelle nelle query. Questo potrebbe rendere le tue query più leggibili (anche a te stesso) e quindi è più facile individuare tali errori in. –

risposta

13

Fondamentalmente, hai sbagliato i nomi delle tabelle.

Nella tua FROM avete:

FROM [dbo].[RunSequenceBatch] AS RunSeq 

Stai aliasing [dbo].[RunSequenceBatch] In altre parole, si sta affermando che da qui in avanti, [dbo].[RunSequenceBatch] sarà indicato come RunSeq

Ma nel tuo GROUP BY non ci si riferisce ad esso usando l'alias. Poiché l'alias nell'unico nome esposto nella query, dbo.RunSequenceBatch non può essere associato.

Change

GROUP BY dbo.RunSequenceBatch.RunSequenceBatchName 

a

GROUP BY RunSeq.RunSequenceBatchName 

E andrà tutto bene.

+0

Grande spiegazione. Soprattutto "In altre parole, stai affermando che da qui in avanti, [dbo]. [RunSequenceBatch] sarà denominato RunSeq" –

Problemi correlati