FM.ALPACHINO
دوشنبه 06 دی 1389, 10:09 صبح
سلام دوستان
دو جدول photos و albums دارم .می خواهم پروسیجری داشته باشم که بتونه تصویر اول هر البوم رو به همراه نام البوم و albumid (برای نشان دادن تصاویر بیشتر البوم )به من بر گردونه.من از این query استفاده کردم که 3 رکورد رو بر میگردونه همون چیزی که می خوام
select Albums.AlbumID,ALBUMS.Category,tmp.Caption from Albums
cross apply
(select top 1 Caption from Photos p
where p.AlbumID= Albums.AlbumID
order by P.AlbumID)tmp
و اما sproc :
create PROC USP_GETFirstPhoto
@ALBUMID INT OUTPUT,
@CATEGORY NVARCHAR(50) OUTPUT ,
@CAPTION NVARCHAR(50) OUTPUT
AS
SELECT @ALBUMID = A.AlbumID,@CATEGORY=A.Category,@CAPTION=TMP.Captio n FROM Albums A
CROSS APPLY
( SELECT top 1 * FROM Photos
WHERE AlbumID=A.AlbumID
)TMP
order by A.AlbumID
DECLARE @x INT,@y NVARCHAR(50),@z NVARCHAR(50)
EXEC USP_GETFirstPhoto @x output,@y output,@z output
select @x,@y,@z
وقتی این پروسیجر را اجرا می کنم فقط یک رکورد به من نشون می ده در حالی که من فعلا 3 رکورد مد نظرم است .چرا فقط یک رکورد بر گردانده می شه؟چگونه می توانم از این پروسیجر اسکیما بگیرم؟
در هر دو جدول داده کافی هست.
لظفا راهنمایی کنید .اگر خودتون می خواستید این کار رو انجام بدید چه کار می کردید؟
با تشکر
دو جدول photos و albums دارم .می خواهم پروسیجری داشته باشم که بتونه تصویر اول هر البوم رو به همراه نام البوم و albumid (برای نشان دادن تصاویر بیشتر البوم )به من بر گردونه.من از این query استفاده کردم که 3 رکورد رو بر میگردونه همون چیزی که می خوام
select Albums.AlbumID,ALBUMS.Category,tmp.Caption from Albums
cross apply
(select top 1 Caption from Photos p
where p.AlbumID= Albums.AlbumID
order by P.AlbumID)tmp
و اما sproc :
create PROC USP_GETFirstPhoto
@ALBUMID INT OUTPUT,
@CATEGORY NVARCHAR(50) OUTPUT ,
@CAPTION NVARCHAR(50) OUTPUT
AS
SELECT @ALBUMID = A.AlbumID,@CATEGORY=A.Category,@CAPTION=TMP.Captio n FROM Albums A
CROSS APPLY
( SELECT top 1 * FROM Photos
WHERE AlbumID=A.AlbumID
)TMP
order by A.AlbumID
DECLARE @x INT,@y NVARCHAR(50),@z NVARCHAR(50)
EXEC USP_GETFirstPhoto @x output,@y output,@z output
select @x,@y,@z
وقتی این پروسیجر را اجرا می کنم فقط یک رکورد به من نشون می ده در حالی که من فعلا 3 رکورد مد نظرم است .چرا فقط یک رکورد بر گردانده می شه؟چگونه می توانم از این پروسیجر اسکیما بگیرم؟
در هر دو جدول داده کافی هست.
لظفا راهنمایی کنید .اگر خودتون می خواستید این کار رو انجام بدید چه کار می کردید؟
با تشکر