FEHLERMELDUNG "Das angegebene Feld konnte beziehen sich auf mehr als eine Tabelle in der FROM-Klausel"
Ich bin mit Access 2010.
Mein Fehler scheint zu sein, ein Ergebnis des aliasing.
Den Lösungen, die ich gelesen habe anzugeben, dass ein anderer alias verwendet werden soll, auf jeder Ebene (was ich getan habe) und dass der Zugang mag, viele WÄHLEN Sie * (also ich habe die auch), aber es hat nicht mein Problem gelöst.
Ich bin immer ein Fehler auf ServiceZipSpec.Service_Product. Alle Zeiger? Danke!
SELECT DISTINCT ServiceZipSpec.Service_Product, ServiceZipSpec.Specificity, Service_Availability.Available, Service_Availability.Zip_Code, Service_Availability.State
FROM
( SELECT * FROM
( SELECT * FROM Service_Availability AS C_Avail1
INNER JOIN
(
SELECT C_Avail2.Service_Product, MAX(C_Avail2.Specificity) AS Spec
FROM Service_Availability AS C_Avail2
WHERE (C_Avail2.State = "TX" OR C_Avail2.State = "CW")
GROUP BY C_Avail2.Service_Product
) MaxSpec
ON C_Avail1.Service_Product = MaxSpec.Service_Product
AND C_Avail1.Specificity = MaxSpec.Spec
) Service_Spec
LEFT JOIN TABLE_ZipCodes ON Service_Spec.State = TABLE_ZipCodes.State
) ServiceZipSpec
WHERE ServiceZipSpec.Available = TRUE AND (ServiceZipSpec.State = "TX" OR ServiceZipSpec.State = "CW")
;
- Haben Sie eine Kopie von MS-Access? Wenn dem so ist, warum nicht versuchen, die Abfrage design-Fenster? Einige Ihrer Ideen sind nicht korrekt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Ursache des Problems ist, dass Sie mit
SELECT *
Sie beim verknüpfen von Tabellen, die gleichnamige Spalten. Versuchen Sie, die Begrenzung zuSELECT table_name.*
oder einfach wählen Sie die Spalten, die Sie brauchen.Beispiel:
Müssen Sie
SELECT colName1, colname2
statt derSELECT *
bekommen Sie einen Konflikt in Ihrem Unterabfragen. Auch Ihre äußere select-Liste werden aus der Tabelle mit dem aliasServiceZipSpec
:Den angegebenen Bereich verweisen könnte beziehen sich auf mehr als eine Tabelle aufgeführt, die in der FROM-Klausel der SQL-Anweisung. Im folgenden Beispiel wird das Feld Bestellnr existiert in beiden Tabellen Bestellungen und Bestelldetails:
Weil die Anweisung nicht angeben, welche Tabelle Bestell-NR gehört, produziert diese Fehler. Um diesen Vorgang abzuschließen, voll qualifizieren den feldverweis durch hinzufügen einer Tabelle Namen. Zum Beispiel: