usando variável de uma função

29/09/2006

eu tenho uma função onde passo esses parametros:

CREATE FUNCTION DBO.FN_RETORNA_PAIS_UNIDADE_ORGANIZACIONAL_RISCO
(
@cUndOrgnzPai DECIMAL = NULL,
@cVrsaoUndOrgnzPai DECIMAL = NULL,
@NivelHierarquia INT = NULL,
@ReturnMe SMALLINT = NULL
) RETURNS @TABELA_RETORNO TABLE
(
cUndOrgnzRisco decimal(10,0),
cVrsaoUndOrgnzRisco decimal(5,0),
rUndOrgnzRisco char(40),
cUndOrgnzPai decimal(10,0),
cVrsaoUndOrgnzPai decimal(5,0),
[color=#FF0000:08a5c813b1]cdNvelUndOrgnz decimal(1,0),[/color:08a5c813b1] cSgmto decimal(2,0),
cNvelHierq decimal (2,0)
)

e no parametro vermleho eu tenho que passar um valor para trazer na consulta.

estu tentando fanzemdo assim no select:

FROM 
dbo.FN_RETORNA_PAIS_UNIDADE_ORGANIZACIONAL_RISCO (null, null, null, null), 
if FN_RETORNA_PAIS_UNIDADE_ORGANIZACIONAL_RISCO.cdNvelUndOrgnz = 1 or FN_RETORNA_PAIS_UNIDADE_ORGANIZACIONAL_RISCO.cdNvelUndOrgnz = 2
begin
dbo.TPLANOACAO INNER JOIN dbo.TINVENTARIORISCO ON dbo.TPLANOACAO.CINVNTRISCO = 
dbo.TINVENTARIORISCO.CINVNTRISCO INNER JOIN dbo.tDadoFunclFuncRisco ON 
dbo.TINVENTARIORISCO.cFuncBdsco = dbo.tDadoFunclFuncRisco.cFuncBdsco AND 
dbo.TINVENTARIORISCO.cVrsaoFunc = dbo.tDadoFunclFuncRisco.cVrsaoFunc
end

só que me dá um erro de sintaxe. só que antes de fazer o if tem a vírgula, porém já tirei e continua me dando o mesmo erro.

essa parte realmente não sei como fazer. como seria?


Rafa-martin

Respostas

29/09/2006

Rafa-martin

pessoal isso eu já consengui arrumar.

estou com um outro problema. olhem só:

dbo.FN_RETORNA_PAIS_UNIDADE_ORGANIZACIONAL_RISCO (null, null, null, null) as D

completo está assim:
dbo.FN_RETORNA_PAIS_UNIDADE_ORGANIZACIONAL_RISCO (null, null, null, null) as D
[color=green:b31251fdfd]on[/color:b31251fdfd] (TINVENTARIORISCO.cUndOrgnzRisco = D.cUndOrgnzRisco
and dbo.TINVENTARIORISCO.cVrsaoUndOrgnzRisco = D.cVrsaoUndOrgnzRisco and D.cdNvelUndOrgnz = 2)
dbo.TPLANOACAO INNER JOIN dbo.TINVENTARIORISCO ON dbo.TPLANOACAO.CINVNTRISCO =
dbo.TINVENTARIORISCO.CINVNTRISCO INNER JOIN dbo.tDadoFunclFuncRisco ON
dbo.TINVENTARIORISCO.cFuncBdsco = dbo.tDadoFunclFuncRisco.cFuncBdsco AND
dbo.TINVENTARIORISCO.cVrsaoFunc = dbo.tDadoFunclFuncRisco.cVrsaoFunc

só que está me dando erro de sintaxe. esse erro:[color=#CC0000:b31251fdfd] Incorrect syntax near the keyword ´on´.[/color:b31251fdfd].

e é na linha que está em verde.

pq do erro?


Responder Citar

29/09/2006

Rafa-martin

galera consegui.

ficou assim:

depois da cláusula from

(select * from FN_RETORNA_PAIS_UNIDADE_ORGANIZACIONAL_RISCO (null, null, null, null)) AS D
ON (DBO.TINVENTARIORISCO.cUndOrgnzRisco = D.cUndOrgnzRisco 
AND TINVENTARIORISCO.cVrsaoUndOrgnzRisco = D.cVrsaoUndOrgnzRisco AND D.cdNvelUndOrgnz = 2)



Responder Citar