2012-04-10 4 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) 

このクエリは機能しますが、このクエリに基づいて表示を作成できません。助けてください! murtazaとしてどうすればいいですかこのような選択

+0

は、ストアドプロシージャを作成し、uが必要な場所を使用します。変数を宣言している可能性がありますので、ビューでは動作しません。私はこれについてはわからない。 – Murtaza

+0

はいMS SQL Server 2008 R2を使用しています – alexandrovdi

答えて

1

は、あなたがこのためにストアドプロシージャを作成することができ、またはビューとしてこれを使用したい場合は、あなたが他のビューを使用して参加することができますテーブル値関数を作成することができますと言います。

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