Reputation: 1
I keep getting the error listed below:
Msg 156, Level 15, State 1, Procedure spGetManagerName, Line 22 Incorrect syntax near the keyword 'SELECT'.
Situation: A user selects (from a dropdown) a team which converts to a teamID and is sent to the data access layer (DAL). The teamID is passed into the stored procedure. Based on the teamID... the team & the manager table are quizzed to divulge the correct managers name.
The problem: I keep getting a syntax error message. I know/think its something small but just can't see it.
Anybody see what's going on with this...
USE [Travel_Test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Description: Getting Manager Name via Team dropdown selection
-- =============================================
CREATE PROCEDURE [dbo].[spGetManagerName]
@inputTeamID int,
@ManName nvarchar(50) OUTPUT
AS
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
@ManName = ManagerFName + ' ' + ManagerLName AS ManagerName
FROM
Managers m
WHERE
m.ManagerID = SELECT
Team.ManagerID
FROM
Team
WHERE
Team.TeamID = @inputTeamID;
RETURN
GO
Upvotes: 0
Views: 49
Reputation: 45096
Select Top 1 @ManName = m.ManagerFName + ' ' + m.ManagerLName
FROM Managers m
JOIN Team
ON m.ManagerID = Team.ManagerID
AND Team.TeamID = @inputTeamID;
Upvotes: 0
Reputation: 25753
Try to add parenthesis to the subquery:
CREATE PROCEDURE [dbo].[spGetManagerName]
@inputTeamID int,
@ManName nvarchar(50) OUTPUT
AS
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
@ManName = ManagerFName + ' ' + ManagerLName
FROM
Managers m
WHERE
m.ManagerID = (SELECT
Team.ManagerID
FROM
Team
WHERE
Team.TeamID = @inputTeamID
);
RETURN
GO
Upvotes: 1