2 Stimmen

Benötige Hilfe bei der korrigierten SQL-Syntax für das Northwind Data Access Layer-Tutorial

Ich versuche, das Data Access Layer-Tutorial von http://msdn.microsoft.com/en-us/library/aa581776.aspx Ich habe bisher (dank dieses Forums) in der Lage sein, die entsprechenden TableAdapter zu generieren und sie arbeiten auf die einzelnen Tabellen. Jetzt versuche ich, die Abfrage der zugehörigen Tabellen durchzuführen, die die GetProducts()-Methode durch Bearbeiten der SQL in ein verschachteltes Select-Format ändert, das drei Tabellen betrachtet: Produkte, Kataloge und Lieferanten. Die vorgegebene Syntax lautet wie folgt:

SELECT     
 ProductID, ProductName, SupplierID, CategoryID, 
 QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, 
 ReorderLevel, Discontinued,
    (SELECT 
        CategoryName 
     FROM Categories 
     WHERE Categories.CategoryID = Products.CategoryID  as CategoryName, 
    (SELECT 
       CompanyName 
     FROM Suppliers 
     WHERE Suppliers.SupplierID = Products.SupplierID) as SupplierName
FROM Products

Dies kann nicht analysiert werden. Kann mir jemand die korrekte Syntax für dieses verschachtelte Select sagen, so dass es funktioniert? Hatte jemand anderes dieses Problem? Ich verwende Visual Studio 2010 und SQL Server 2008 Express. Ich danke Ihnen für jede Hilfe, die Sie mir geben können.

1voto

Alex K. Punkte 165323

Es sieht so aus, als ob ein abschließender Paren für die 1. Subquery fehlt;

... Products.CategoryID as CategoryName

zu

... Products.CategoryID) as CategoryName

1voto

Keng Punkte 49933

Sie haben das erste "(" (oder möglicherweise das zweite, je nachdem, wie Sie es betrachten) nicht geschlossen.

1voto

msarchet Punkte 14846
SELECT     
 ProductID, 
 ProductName, 
 SupplierID, 
 CategoryID, 
 QuantityPerUnit, 
 UnitPrice, 
 UnitsInStock, 
 UnitsOnOrder, 
 ReorderLevel, 
 Discontinued,
 Categories.CategoryName as CategoryName,
 Suppliers.CompanyName As SupplierName
FROM Products
Join Suppliers On Suppliers.SupplierID = Products.SupplierID
Join Categories On Categories.CategoryID = Products.CategoryID

Sie möchten hier einen Join anstelle einer verschachtelten Abfrage verwenden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X