2012-05-30 20 views
7

Duplicar posibles:
The multi-part identifier could not be boundEl identificador de varias partes no podía ser obligado

Ésta es mi consulta que no quieren trabajar.

Dice: El identificador de varias partes "dbo.RunSequenceBatch.RunSequenceBatchName" no se pudo vincular.

¿Podría por favor asesorar?

Gracias de antemano! :)

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

Puede ser un error tipográfico pero tiene RunSeq.RunSequenceBatchName y más en la consulta RunSequence.RunSequenceBatchName. Parece ser lo mismo con diferentes nombres? –

+0

Considere usar alias cortos para tablas en sus consultas. Esto podría hacer que sus consultas sean más legibles (incluso para usted) y así sea más fácil detectar tales errores. –

Respuesta

13

Básicamente, no ha coincidido con los nombres de su tabla.

En su FROM tiene:

FROM [dbo].[RunSequenceBatch] AS RunSeq 

Estás aliasing [dbo].[RunSequenceBatch] En otras palabras, usted está diciendo que de aquí en adelante, [dbo].[RunSequenceBatch] se denominarán como RunSeq

Pero en su GROUP BY no lo menciona utilizando el alias. Debido a que el alias en el único nombre expuesto en la consulta, dbo.RunSequenceBatch no se puede enlazar.

Cambio

GROUP BY dbo.RunSequenceBatch.RunSequenceBatchName 

a

GROUP BY RunSeq.RunSequenceBatchName 

Y se le multa.

+0

Gran explicación. Especialmente "En otras palabras, indica que a partir de ahora, [dbo]. [RunSequenceBatch] se denominará RunSeq" –

Cuestiones relacionadas