2012-04-10 9 views
0
Declare @Result as varchar(max)=''; 
SELECT DISTINCT @Result = dbo.MaterialTypes.Title + ', '+ @Result 
FROM   dbo.TempId LEFT OUTER JOIN 
         dbo.ProductMaterials ON dbo.ProductMaterials.Product = dbo.TempId.Id LEFT OUTER JOIN 
         dbo.MaterialTypes ON dbo.ProductMaterials.MaterialType = dbo.MaterialTypes.Id LEFT OUTER JOIN 
         dbo.Products ON dbo.Products.Id = dbo.TempId.Id 
WHERE  (dbo.Products.IsCollection = 1) 



SELECT DISTINCT dbo.TempId.Id AS MaterialCollection_id, @Result 
FROM   dbo.TempId LEFT OUTER JOIN 
         dbo.ProductMaterials ON dbo.ProductMaterials.Product = dbo.TempId.Id LEFT OUTER JOIN 
         dbo.MaterialTypes ON dbo.ProductMaterials.MaterialType = dbo.MaterialTypes.Id LEFT OUTER JOIN 
         dbo.Products ON dbo.Products.Id = dbo.TempId.Id 
WHERE  (dbo.Products.IsCollection = 1) 

Diese Abfrage ist Arbeit, aber ich kann View nicht erstellen, basierend auf dieser Abfrage. Bitte helfen Sie!Wie kann ich wählen wie folgt

+0

dann eine gespeicherte Prozedur erstellen und verwenden, wo immer u müssen. Vielleicht haben Sie eine Variable deklariert, deshalb funktioniert sie nicht. Ich bin mir nicht sicher. – Murtaza

+0

Ja ich benutze MS SQL Server 2008 R2 – alexandrovdi

Antwort

1

Wie murtaza sagt Ihnen eine Stored Procedure für diese erstellen können, oder wenn Sie dies als eine Ansicht verwenden möchten, können Sie eine Tabellenfunktion erstellen, die Sie andere Ansichten verwenden können, und schließt sich.

http://msdn.microsoft.com/en-us/library/ms191165.aspx

Verwandte Themen