Reputation: 3307
I have a simple stored procedure. In SalesTable
the ItemId
i.e 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
Upvotes: 0
Views: 195
Reputation: 3393
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
Upvotes: 2