2012-06-13 1 views
0

T-SQL 저장 프로 시저를 개발하고 거기에서 일부 논리 및 계산을 수행하려고하지만 어떤 이유로 구문 오류가 발생합니다. 나는 중요한 곳을 강조 할 것이며, 어떻게해야할지 모르겠다.T-SQL 저장 프로 시저 구성

CREATE PROC AddInvestment 
@_Investor nvarchar(89), 
@_Sum decimal(19,4), 
@_Currency smallint, 
@_Rate tinyint, 
@_Date date, 
@_Comment nvarchar(max) 

AS 

DECLARE @_MavroRate decimal(19,4) 
DECLARE @_Mavro decimal(19,4) 

SELECT mr.[40] INTO @_MavroRate <==== ERROR 
FROM dbo.MavroRateBuy mr 
WHERE mr.Date = @_Date 

@_Mavro = _Sum/@_MavroRate <==== ERROR 

INSERT INTO Investments(Investor, Sum, Currency, Rate, Date, Mavro, MavroRate, Comment) 
VALUES (@_Investor, @_Sum, @_Currency, @_Rate, @_Date, @_Mavro, @_MavroRate, @_Comment) 

T-SQL 문으로 확인하고 내가 잘못하고있는 부분을 지적 해 주시겠습니까?

감사합니다. 이 같은

답변

1

이 시도 : 당신은 라인 @_Mavro = _Sum/@_MavroRate 앞에 SET 누락

CREATE PROC AddInvestment 
@_Investor nvarchar(89), 
@_Sum decimal(19,4), 
@_Currency smallint, 
@_Rate tinyint, 
@_Date date, 
@_Comment nvarchar(max) 

AS 

DECLARE @_MavroRate decimal(19,4) 
DECLARE @_Mavro decimal(19,4) 

SELECT @_MavroRate = mr.[40] 
FROM dbo.MavroRateBuy mr 
WHERE mr.Date = @_Date 

SET @_Mavro = @_Sum/@_MavroRate 

INSERT INTO Investments(Investor, Sum, Currency, Rate, Date, Mavro, MavroRate, Comment) 
VALUES (@_Investor, @_Sum, @_Currency, @_Rate, @_Date, @_Mavro, @_MavroRate, @_Comment) 
2

뭔가 나는 가정 :

SELECT @_MavroRate = mr.[40] 
FROM dbo.MavroRateBuy mr 
WHERE mr.Date = @_Date 

SELECT @_Mavro = @_Sum/@_MavroRate 

@_Sum는 사용하기 전에 값을 가질 필요가있다.

+0

왜 잘못했는지 설명하려면 - 변수를 SELECT INTO로 설정할 수 없습니다. SELECT INTO를 사용하여 새 테이블을 만듭니다. – HLGEM

1

. 아래 코드와 같아야합니다.

SET @_Mavro = _Sum/@_MavroRate 

또한, INTO이 변수를 설정하지, 새 테이블에 결과를 삽입하는 데 사용됩니다. 아래의 코드는 select 문에서 변수를 설정하는 올바른 방법입니다.

SELECT @_MavroRate = mr.[40] 
FROM dbo.MavroRateBuy mr 
WHERE mr.Date = @_Date