使用sql server中的存储过程检索具有相同区域的用户

时间:2014-09-11 10:34:00

标签: sql sql-server

这是我的样本数据

create table #t(id int identity(1,1),name varchar(10),region varchar(10),amt int)

insert into #t values('abc','R1',100),('xyz','R1',200),('lmn','R2',300),
('stu','R3',500)

create procedure test 
as @enter varchar(10)

as 
begin

select a.name,a.region,a.id from #t a join #b where a.region=b.region

end

exec test @enter='abc'

上面的示例输出应该是

abc','R1',100
'xyz','R1',200

因为abc,xyz属于同一个地区R1

我正在尝试执行SP

输入@name参数并输出具有相同区域的记录

**我正在尝试获取属于同一区域的用户数据。

但上述查询无效。

2 个答案:

答案 0 :(得分:0)

select a.name,a.region,a.id from #t a join #b where a.region=b.region and a.region = @enter

答案 1 :(得分:0)

使用子选择,如果要创建过程,则必须使用持久表。

Select * from #t where region=(Select region from #t sub where sub.name=@enter)

可能看起来像:

create table t(id int identity(1,1),name varchar(10),region varchar(10),amt int)

insert into t values('abc','R1',100),('xyz','R1',200),('lmn','R2',300),
('stu','R3',500)

GO

create procedure test ( @enter varchar(10)) as
begin

Select * from t where region=(Select region from t sub where sub.name=@enter)

end
GO

exec test @enter='abc'