Sonntag, Juni 7, 2020

SQL Server 2012 Multi-part identifier “ konnte nicht gebunden werden

Ich habe 4 Tabellen, die ich bin bei der Adventureworks-Datenbank 2012. Ich kann nicht herausfinden, warum ich bin immer das ‚konnte nicht gebunden werden-Fehler‘.

Msg 4104, Ebene 16, Status 1, Zeile 7

The multi-part identifier “ – Produktion.“ProductCategory“.Name“ konnte nicht gebunden werden.

Msg 4104, Ebene 16, Status 1, Zeile 1

The multi-part identifier “ – Produktion.“ProductCategory“.Name“ konnte nicht gebunden werden.

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]

InformationsquelleAutor Iansberg | 2015-12-07

4 Kommentare

  1. 5

    Ihre Abfrage die Tabelle [Production].[ProductCategory] den alias PC. Sie benötigen, um dieses in den rest der Abfrage:

    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];

    Geben Ihnen einmal eine Tabelle einen alias, finden Sie, dass der alias anstelle des ursprünglichen Tabellennamen.

    Ich dachte nur, dass heraus und kam zu entfernen, meine Frage, trotzdem danke sehr

    InformationsquelleAutor Gordon Linoff

  2. 0

    Sollten Sie mit Hilfe der alias in der Spalte Liste:

    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]

    InformationsquelleAutor Felix Pamittan

  3. 0

    Manchmal dieser Fehler tritt auf, wenn Sie Ihr schema ([Produktion]) in die Abfrage in eine falsche Richtung.

    Zum Beispiel, wenn Sie schreiben:

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

    erhalten Sie die Fehlermeldung.

    In diese Situationen zu ändern:

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

    InformationsquelleAutor Nguyễn Hải Triều

  4. 0

    Schreiben Sie bitte PC.[name] in der Gruppe byclause..bcoz Sie bereits gegeben alias-PC für Tisch-Produkt.prooductcategory.daher muss die Verwendung von alias-PC, definieren Sie die Spalten des Produktes der Kategorie Tabellen in der Abfrage, wo immer notwendig.

    InformationsquelleAutor Kumaresh

Kostenlose Online-Tests