PDA

View Full Version : این سلکتی که نوشتم درسته؟



marjan_gh
یک شنبه 25 اسفند 1392, 15:52 عصر
ALTER PROCEDURE [dbo].[sp_Specific_feature_Product]
@productId int , @featureCategoryId int
AS
declare @x int
BEGIN

SET NOCOUNT ON;
begin transaction

select @x=(select DISTINCT featureUnitId from View_product where productId=@productId AND featureCategoryId=@featureCategoryId)
select DISTINCT featureName,featureValue,(select featureUnitName from tblFeatureUnit where featureUnitId=@x) as featureUnitName from View_product where productId=@productId AND featureCategoryId=@featureCategoryId
commit
END

espootin
یک شنبه 25 اسفند 1392, 23:32 عصر
با سلام.

از نظر Syntax که درسته ، حداقل فکر نکنم خطایی داشته باشه.
ولی درست بودن به اینه که نتیجه صحیح برگردونه، که شما باید تشخیص بدهید.
در ضمن نیازی به استفاده از Transaction نیست و باید توجه داشته باشید که در صورتی که خروجی select که توی پرانتز هست در صورتی که بیش از یک مقدار باشد با خطا مواجه خواهید شد.

cherchil_hra
دوشنبه 26 اسفند 1392, 09:18 صبح
اینجوری هم می تونی بنویسی:

SELECT p.featureName,
p.featureValue,
fu.featureUnitName
FROM View_product AS P
INNER JOIN tblFeatureUnit AS FU
ON p.featureUnitId = fu.featureUnitId
WHERE p.productId = @productId
AND p.featureCategoryId = @featureCategoryId