PDA

View Full Version : join نتایج select



Sal_64
چهارشنبه 08 آبان 1387, 20:42 عصر
سلام

با sp زیر قصد دارم نتایج دو سلکت که نتیجه هر دو یا عدد 1 و یا 0 است رو با هم ادغام و یه رشته ایجاد کنم و به برنامه بفرستم



CREATE PROCEDURE dbo.check_vojod_moghayrat_enter_riz_daryafti

(
--declare variable for set and return
@res1 varchar(5),
@res2 varchar(5),
-- declare variable for get paramatre
@radif_dastgah VarChar(50),
@mah VarChar(5),
@sal VarChar(5),
@tozih_cod_sazman NVarChar(50)

}

AS
/* SET NOCOUNT ON */
set @res1=' select count(*) from seporde where (radif_dastgah=@radif_dastgah and mah =@mah and sal=@sal and tozih_cod_sazman=@tozih_cod_sazman )'

set @res2 =( select sorat_riz from seporde where (radif_dastgah=@radif_dastgah and mah =@mah and sal=@sal and tozih_cod_sazman=@tozih_cod_sazman))
RETURN @res1+'_'+@res2


شاید ایراد در تعریف دو متغییر res باشه یا در استفاده و یا در return کردن اون

ایراد کجاست که این sp ایجاد نمی شه ؟؟

با تشکر

odiseh
پنج شنبه 09 آبان 1387, 10:21 صبح
حداکثر طولی که برای متغیر @re1 در نظر گرفتی 5 کاراکتره......بیشترش کن تا اندازه اون عبارتی که میخوایی بهش Assign کنی بشه. بعد درست میشه.

MajerajooyeKhallagh
پنج شنبه 09 آبان 1387, 10:49 صبح
سلام دوست عزیز:

نحوه ایجاد استوردپراسیجر:




CREATE PROCEDURE dbo.check_vojod_moghayrat_enter_riz_daryafti
(
@radif_dastgah VarChar(50),
@mah VarChar(5),
@sal VarChar(5),
@tozih_cod_sazman NVarChar(50),
@res Varchar(5)OUTPUT
)

AS
SETNOCOUNTON

DECLARE @res1 VARCHAR(5),
@res2 VARCHAR(5)

SELECT @res1=count(*)FROM seporde WHERE(radif_dastgah=@radif_dastgah and mah =@mah and sal=@sal and tozih_cod_sazman=@tozih_cod_sazman )

SELECT @res2=sorat_riz FROM seporde WHERE(radif_dastgah=@radif_dastgah and mah =@mah and sal=@sal and tozih_cod_sazman=@tozih_cod_sazman)

SET @res=@res1+'_'+@res2



نحوه اجرای آن:



DECLARE @res Varchar(5)

exec dbo.check_vojod_moghayrat_enter_riz_daryafti @radif_dastgah,@mah,@sal,@tozih_cod_sazman,@res OUTPUT

select @res