2014-09-02 2 views
0

저는 초보자이므로 작성한 MSSQL 기능을 새 Netezza 어플라이언스로 변환하는 데 도움이 필요합니다. 나는 C++을 모른다. 그래서 어떤 도움도 인정 될 것이다. 다음은 SQL 코드입니다.TSQL에서 Netezza UDX 만들기

ALTER FUNCTION [dbo].[PMT] 
(
     -- Add the parameters for the function here 
     @Term float, 
     @Rate float, 
     @LoanSize float 
) 
RETURNS float 
AS 
BEGIN 
     -- Declare the return variable here 
     DECLARE @Result float 
     DECLARE @NewRate float 

     set @NewRate = @Rate/1200 
     -- Add the T-SQL statements to compute the return value here 
     SELECT @Result = 
     case when @NewRate = 0 then 
      @LoanSize/@Term 
     else 
      @LoanSize/((1-(1/POWER([email protected],@Term)))/(@NewRate)) 
     end 

     -- Return the result of the function 
     RETURN @Result 

END 
+0

귀하의 질문에 dosen 불구하고 UDF를 필요로한다이 아무것도 표시되지 않습니다 . 더 필요한 것이 무엇인지 상세히 설명하십시오. –

답변

0

쿼리는 UDF에서 수행 할 수 없습니다. UDF로 전달하는 모든 것은 모든 행에서 수행됩니다. UDF가 결정적이면 행당 하나의 응답을 리턴합니다. 이것은 당신이뿐만 아니라 네티에서 같은 방법으로 쓸 수있는 단지 데이터베이스 프로 시저이기 때문에, t는 C++ UDF의 목적을 증명, 나는

select somenum as newrate, somename as term, somenum as loansize, 
case 
when NewRate = 0 
    then LoanSize/Term 
    else LoanSize/((1-(1/POWER(1+NewRate,Term)))/(NewRate)) 
end as mynewcol