2012-05-30 38 views
7

可能重复:
The multi-part identifier could not be bound多部分组成的标识符无法绑定

这是我的查询,不希望工作。

它说: 无法绑定多部分标识符“dbo.RunSequenceBatch.RunSequenceBatchName”。

您能否提供建议?

在此先感谢! :)

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

可能是一个错字,但你有RunSeq.RunSequenceBatchName和进一步在您的查询RunSequence.RunSequenceBatchName。似乎是不同的名称相同? –

+0

考虑在查询中使用简短的别名。这可能会使您的查询更具可读性(即使对您自己),因此更容易发现此类错误。 –

回答

13

基本上,你的表名不匹配。

在你FROM您有:

FROM [dbo].[RunSequenceBatch] AS RunSeq 

你走样[dbo].[RunSequenceBatch]换句话说,你指出,从现在起,将[dbo].[RunSequenceBatch]被称为RunSeq

但在你GROUP BY你不使用别名引用它。因为查询中唯一显示的名称中的别名dbo.RunSequenceBatch无法绑定。

变化

GROUP BY dbo.RunSequenceBatch.RunSequenceBatchName 

GROUP BY RunSeq.RunSequenceBatchName 

而且你会没事的。

+0

很好的解释。特别是“换句话说,你从这里开始说[dbo]。[RunSequenceBatch]将被称为RunSeq” –

相关问题