GARANTIR DESCONTO

Fórum Left Join com sub-select #411705

19/01/2012

0

Olá, Boa tarde.

Criei um script e gostaria de saber se a maneira que fiz esta, correta.
Ou tambem se tem algum outro Jeito de fazer.

Minha duvida é a seguinte: Tenho um Select Principal e dentro desse select tenho um left join com um sub-select, Gostaria de usar um campo do select principal dentro do sub-select. como fazer isso ?

eu consigui fazer da seguinte forma, Criei uam variavel e jogava o valor do campo do select principal e usava a variavel no sub-select. Existe algum problema em fazer isso?

Segue um exemplo resumido do que eu fiz:´

CREATE OR REPLACE FUNCTION vrj.pkg_produ_refer__select_por_tamanho
(
--- PARÂMETROS
--- I/O NOME                           TIPO
--- *** ****************************** *************************************************
        refcursor,
    IN  p_cd_unida                     vrj.tb_unida.cd_unida%TYPE
)
RETURNS refcursor AS
$BODY$
DECLARE
	v_idCdProdu int;
BEGIN
    OPEN $1 FOR 
    SELECT
        prd.cd_produ,
        prd.ds_produ,
        uni.cd_unida,
        AUX.VL_PRODUTO,
        v_idCdProdu = prd.cd_produ
    FROM
        vrj.tb_produ AS prd
    INNER JOIN
        vrj.tb-detalhes as det
    on 
        det.cd_produ = prd.cd_produ
    LEFT JOIN
       (SELECT
            TBP.CD_PRODU,
            SUM(I.VALOR) AS VL_PRODUTO
        FROM
            TB_TABELA_PRECO AS TBP
        WHERE
            TBP.CD_UNIDA = p_cd_unida;
        AND
            TBP.CD_PRODU =  v_idCdProdu
        GROUP BY
            TBP.CD_PRODU) AS AUX
    ON
       prd.cd_produ = det.cd_prod     
    WHERE
        prd.cd_produ IS NOT NULL;           
    RETURN $1;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
Giovani Tizzo

Giovani Tizzo

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar