2009-06-19 7 views
1
SELECT P.ProductId, P.ProductCategoryId, P.ParentProductCategoryId, 
     P.ProductName, PC.Name AS Category, P.Price, P.ProductYear 
FROM dbo.ProductCategory AS PC 
INNER JOIN 
    (SELECT dbo.ProductCategory.ParentProductCategoryId, 
      dbo.ProductCategory.ProductCategoryId, 
      dbo.ProductCategory.Name AS CategoryName, 
      dbo.Product.ProductId, 
      dbo.Product.Price, 
      dbo.Product.Name AS ProductName, 
      dbo.Product.ProductYear 
    FROM dbo.Product 
    INNER JOIN dbo.ProductCategory 
    ON dbo.ProductCategory.ProductCategoryId = dbo.Product.ProductCategoryId 
) AS P 
ON PC.ProductCategoryId = P.ParentProductCategoryId 
+1

vaudraient peut-être, y compris par exemple des résultats que vous voulez ici ... – Benjol

Répondre

1

Je ne suis pas tout à fait sûr de votre mise en page de base de données, mais la déclaration LINQ ressemblerait à quelque chose comme ça ...

YourDataContext db = new YourDataContext(); 

var query = 
    from p in db.Products 
    join pc in db.ProductCategories on p.ProductCategoryId equals pc.ProductCategoryId 
    select new 
    { 
     p.ProductId, 
     p.ProductCategoryId, 
     p.ParentProductCategoryId, 
     p.ProductName, 
     Category = pc.Name, 
     p.Price, 
     p.ProductYear 
    } 
+0

Si vous regardez Attention, vous remarquerez que le questionneur lie les parents ProductCategories aux enfants, puis aux produits. – Benjol

+0

Ah, on dirait que quelqu'un a édité le post et utilisé des blocs de code. Appologies. –