2014-09-11 48 views
1

這是我的上述採樣數據與同一區域檢索用戶使用存儲在SQL服務器程序

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參數並輸出具有相同區域的記錄

**我正在嘗試獲取屬於同一區域的用戶數據。

但上述查詢不起作用。

+0

[我的小提琴演示(http://www.sqlfiddle.com/#!6/d41d8/21495) – user262503 2014-09-11 10:44:38

回答

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

[詳情請看這裏](HTTP ://www.sqlfiddle.com/#!6/d41d8/21495) – user262503 2014-09-11 10:44:15

0

使用子查詢,如果你想創建一個過程,你將不得不使用持久表。

Select * from #t where region=(Select region from #t sub where [email protected]) 

這可能看起來像:

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 [email protected]) 

end 
GO 

exec test @enter='abc' 
+0

哇..感謝bummi! – user262503 2014-09-11 11:03:24

相關問題