none
"FOR LOOP" RRS feed

  • Pergunta

  • Bom dia a todos!

    Gostaria de um auxílio para realizar algumas alterações com base em um outra tabela.

    Como posso fazer o comando abaixo no SQL SERVER?

    No ORACLE o comando que eu utilizaria seria o For Loop e a extrutura do comando ficaria exatamente assim:

    BEGIN 
    FOR REG IN (dbo.VLR_PIS_COFINS) LOOP 
    UPDATE dbo.TABELA_1
    SET 
    TABELA_1.VALOR_PIS = REG.VLR_PIS,
    TABELA_1.VALOR_COFINS = REG.VLR_COF,
    TABELA_1.BASE_PIS = REG.BASE,
    TABELA_1.BASE_COFINS = REG.BASE
    WHERE   
    TABELA_1.NUM_DOC = REG.NUM_DOC AND
    TABELA_1.NUMERO_DO_ITEM = REG.NUMERO_DO_ITEM AND
    REG.PESSOA_FISICA <> 'X' AND
    REG.GRUPO = 'GR000001' ; 
    END LOOP; 
    END;

    Desde já agradeço a ajuda.

    sexta-feira, 21 de março de 2014 14:24

Respostas

  • Bom dia,

    Se entendi corretamente, você poderia executar um Update com Join:

    UPDATE t
    SET 
        t.VALOR_PIS = REG.VLR_PIS,
        t.VALOR_COFINS = REG.VLR_COF,
        t.BASE_PIS = REG.BASE,
        t.BASE_COFINS = REG.BASE
    FROM dbo.TABELA_1 as t
    INNER JOIN dbo.VLR_PIS_COFINS as REG 
        ON
            REG.NUM_DOC = t.NUM_DOC AND
            REG.NUMERO_DO_ITEM = t.NUMERO_DO_ITEM
    WHERE   
        REG.PESSOA_FISICA <> 'X' AND
        REG.GRUPO = 'GR000001'

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    sexta-feira, 21 de março de 2014 14:43