2015-12-07 61 views
1

我有4張表正在加入Adventureworks 2012.我無法弄清楚爲什麼我得到'無法綁定的錯誤'。無法綁定SQL Server 2012多部分標識符

消息4104,級別16,狀態1,行7

多部分標識符 「Production.ProductCategory.Name」 不能被約束。

消息4104,級別16,狀態1,行

多部分標識符 「Production.ProductCategory.Name」 無法綁定。

SELECT 
    COUNT(WorkOrderID) AS TotalWorkOrders, 
    [Production].[ProductCategory].[Name] 
FROM [Production].[WorkOrder] WO 
INNER JOIN [Production].[Product] P ON WO.[ProductID] = P.[ProductID] 
INNER JOIN [Production].[ProductSubcategory] PS ON PS.[ProductSubcategoryID] = P.[ProductSubcategoryID] 
INNER JOIN [Production].[ProductCategory] PC ON PC.[ProductCategoryID] = PS.[ProductCategoryID] 
WHERE WO.[StartDate] >= '1999—03-08' AND WO.[StartDate] <= '2008-05-02' 
GROUP BY [Production].[ProductCategory].[Name] 

回答

4

您的查詢給表[Production].[ProductCategory]別名PC。你需要在查詢的其餘部分使用:

SELECT COUNT(WO.WorkOrderID) AS TotalWorkOrders, 
     PC.[Name] 
FROM [Production].[WorkOrder] WO INNER JOIN 
    [Production].[Product] P 
    ON WO.[ProductID] = P.[ProductID] INNER JOIN 
    [Production].[ProductSubcategory] PS 
    ON PS.[ProductSubcategoryID] = P.[ProductSubcategoryID] INNER JOIN 
    [Production].[ProductCategory] PC 
    ON PC.[ProductCategoryID] = PS.[ProductCategoryID] 
WHERE WO.[StartDate] >= '1999—03-08' AND WO.[StartDate] <= '2008-05-02' 
GROUP BY PC.[Name]; 

一旦你給一個表的別名,你需要指的是別名,而不是原來的表名。

+0

我只是想通了,即將刪除我的問題,雖然多謝 – Iansberg

0

您應該使用別名在列表中顯示:

SELECT 
    COUNT(WorkOrderID) AS TotalWorkOrders, 
    PC.[Name] 
FROM [Production].[WorkOrder] WO 
INNER JOIN [Production].[Product] P ON WO.[ProductID] = P.[ProductID] 
INNER JOIN [Production].[ProductSubcategory] PS ON PS.[ProductSubcategoryID] = P.[ProductSubcategoryID] 
INNER JOIN [Production].[ProductCategory] PC ON PC.[ProductCategoryID] = PS.[ProductCategoryID] 
WHERE WO.[StartDate] >= '1999—03-08' AND WO.[StartDate] <= '2008-05-02' 
GROUP BY PC.[Name] 
0

有時會出現此錯誤,當您在您的查詢以錯誤的方式使用你的架構([生產])。

例如,如果你寫:

select [Production].[ProductCategory].[Name] 
from [Production].[WorkOrder] WO 

,你會得到錯誤。

在這種情況下,將其更改爲:

select [ProductCategory].[Name] 
from [Production].[WorkOrder] WO 
相關問題