简体   繁体   中英

Returning multiple values in stored procedure

I have a simple stored procedure. In SalesTable the ItemId ie 1001 is repeated 10 times with different values. So this procedure should select 10 values of Amount and EmployeeName . However it is just returning the one value the first occurrence of ItemId . What is wrong here?

I want the procedure to select and return 10 values of Amount and EmployeeName . When I run the query separately in SQL Server Management Studio, it returns all values but in stored procedure only returns the first value. Please help.

ALTER procedure entitiesRead
   @ItemId               integer
   ,@SessionId           integer      
as
begin
   select
       a.amount as Amount
       b.EmployeeName               
   from 
       salesTable a
   left outer join 
       nameEmployees b on (b.id = a.employeeId)
   where 
       ItemId = @ItemId
end

Your query did not work for me; it contained an error. Add a comma after 'Amount' in your select:

select
a.amount as Amount,
b.EmployeeName               
from salesTable a
left outer join nameEmployees b on(b.id=a.employeeId)
where ItemId=@ItemId

By the way, here was my test, which worked fine. You may want to double check the data in your tables as well:

CREATE TABLE #salesTable ( ItemId int, amount money, employeeId int )
INSERT INTO #salesTable ( ItemId, amount, employeeId ) VALUES ( 1001, 100.00, 1 )
INSERT INTO #salesTable ( ItemId, amount, employeeId ) VALUES ( 1001, 101.00, 1 )
INSERT INTO #salesTable ( ItemId, amount, employeeId ) VALUES ( 1001, 102.00, 1 )
INSERT INTO #salesTable ( ItemId, amount, employeeId ) VALUES ( 1001, 103.00, 1 )
INSERT INTO #salesTable ( ItemId, amount, employeeId ) VALUES ( 1001, 104.00, 1 )
INSERT INTO #salesTable ( ItemId, amount, employeeId ) VALUES ( 1001, 105.00, 2 )
INSERT INTO #salesTable ( ItemId, amount, employeeId ) VALUES ( 1001, 106.00, 2 )
INSERT INTO #salesTable ( ItemId, amount, employeeId ) VALUES ( 1001, 107.00, 2 )
INSERT INTO #salesTable ( ItemId, amount, employeeId ) VALUES ( 1001, 108.00, 2 )
INSERT INTO #salesTable ( ItemId, amount, employeeId ) VALUES ( 1001, 109.00, 2 )

CREATE TABLE #nameEmployees ( id int, employeeName varchar(50) )
INSERT INTO #nameEmployees ( id, employeeName ) VALUES ( 1, 'John Smith' )
INSERT INTO #nameEmployees ( id, employeeName ) VALUES ( 2, 'Jane Doe' )

select
a.amount as Amount,
b.EmployeeName               
from #salesTable a
left outer join #nameEmployees b on(b.id=a.employeeId)
where ItemId=1001

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM