Ir para conteúdo
Fórum Script Brasil
  • 0

Chamando uma procedure em uma query de consulta


vitorgrecco01

Pergunta

Boa Tarde...
Dúvida: Quando coloco parâmetros de entrada @_piCodConv = '0002',  @_piCodPlano = '0200',  @_piCodExa = 'CONS',  @_piQtdExa = '1',   @_piData = '20/05/2024',  direto no 'EXECUTE' da minha procedure o parâmetro de saída @_poQtdCh  me retorna '120' que seria referente ao exame 'CONS' do convenio '0002' plano '0200'.
Porém quando uso esses mesmos parâmetros na minha tabela temporária criada para chamar resultados da minha procedure ele me retorna na coluna 'CODEXA' e 'VALOR' como null, alguém sabe me dizer se tem algo de errado no meu código ou se estou me referenciando de forma errada? Agradeço desde já

Query abaixo:

 

CREATE TABLE #Faturamento (
    CodExa varchar(10),
    Valor float 
);

DECLARE @_piCodConv char(04); 
DECLARE @_piData DATE;
DECLARE @_piCodPlano varchar(6);
DECLARE @_piCodExa varchar(10);
DECLARE @_piQtdExa INT = 1;
DECLARE @_piUrgente char(01);
DECLARE @_piCodReq INT;
DECLARE @_piUrgPac char(01);
DECLARE @_piMatMed char(01);
DECLARE @_piML51Temp char(01);
DECLARE @_piCodMeds INT;
DECLARE @_piMedico varchar(40);
DECLARE @_piCodExaOrig varchar(10);
DECLARE @_poMoedaConv varchar(03);
DECLARE @_poCodAMB varchar(11);
DECLARE @_poTaxaUrg float;
DECLARE @_poValBruto float;
DECLARE @_poValLiquido float;
DECLARE @_poValPac float;
DECLARE @_poValPacTot float;
DECLARE @_poValConv float;
DECLARE @_poValConvTot float;
DECLARE @_poValCh float;
DECLARE @_poQtdCh float;
DECLARE @_poMetraFilme float;
DECLARE @_poValFilme float;
DECLARE @_poValMatMed float;
DECLARE @_poValMatMedConv float;
DECLARE @_poValMatMedPac float;
DECLARE @_poCobraFranq varchar(01);
DECLARE @_poValFranq float;
DECLARE @_poConvPart varchar(01);
DECLARE @_poValChFilme float;
DECLARE @_poAcrescimo float;
DECLARE @_poAcrPlano float;
DECLARE @_poFatorSetor float;
DECLARE @_poAvista float;
DECLARE @_poDescExa varchar(27);
DECLARE @_poCodTabela varchar(03);
DECLARE @_poTabela varchar(15);
DECLARE @_poDescMoedaConv varchar(05);
DECLARE @_poCodFilme varchar(11);
DECLARE @_poMoedaFilme varchar(03);
DECLARE @_poDescMoedaFilme varchar(05);

INSERT INTO #Faturamento (CodExa, Valor) VALUES (@_piCodExa, @_poQtdCh)
EXEC FAZ_FATURAMENTO 
    @_piCodConv = '0002', 
    @_piCodPlano = '0200', 
    @_piCodExa = 'CONS', 
    @_piQtdExa = '1',
    @_piData = '20/05/2024', 
    @_piUrgente = @_piUrgente,
    @_piCodReq = @_piCodReq,
    @_piUrgPac = @_piUrgPac,
    @_piMatMed = @_piMatMed,
    @_piML51Temp = @_piML51Temp,
    @_piCodMeds = @_piCodMeds,
    @_piMedico = @_piMedico,
    @_piCodExaOrig = @_piCodExaOrig,
    @_poMoedaConv = @_poMoedaConv OUTPUT,
    @_poCodAMB = @_poCodAMB OUTPUT,
    @_poTaxaUrg = @_poTaxaUrg OUTPUT,
    @_poValBruto = @_poValBruto OUTPUT,
    @_poValLiquido = @_poValLiquido OUTPUT,
    @_poValPac = @_poValPac OUTPUT,
    @_poValPacTot = @_poValPacTot OUTPUT,
    @_poValConv = @_poValConv OUTPUT,
    @_poValConvTot = @_poValConvTot OUTPUT,
    @_poValCh = @_poValCh OUTPUT,
    @_poQtdCh = @_poQtdCh OUTPUT,
    @_poMetraFilme = @_poMetraFilme OUTPUT,
    @_poValFilme = @_poValFilme OUTPUT,
    @_poValMatMed = @_poValMatMed OUTPUT,
    @_poValMatMedConv = @_poValMatMedConv OUTPUT,
    @_poValMatMedPac = @_poValMatMedPac OUTPUT,
    @_poCobraFranq = @_poCobraFranq OUTPUT,
    @_poValFranq = @_poValFranq OUTPUT,
    @_poConvPart = @_poConvPart OUTPUT,
    @_poValChFilme = @_poValChFilme OUTPUT,
    @_poAcrescimo = @_poAcrescimo OUTPUT,
    @_poAcrPlano = @_poAcrPlano OUTPUT,
    @_poFatorSetor = @_poFatorSetor OUTPUT,
    @_poAvista = @_poAvista OUTPUT,
    @_poDescExa = @_poDescExa OUTPUT,
    @_poCodTabela = @_poCodTabela OUTPUT,
    @_poTabela = @_poTabela OUTPUT,
    @_poDescMoedaConv = @_poDescMoedaConv OUTPUT,
    @_poCodFilme = @_poCodFilme OUTPUT,
    @_poMoedaFilme = @_poMoedaFilme OUTPUT,
    @_poDescMoedaFilme = @_poDescMoedaFilme OUTPUT;

SELECT 
    XLABORC.DATA AS "DATA ORCAMENTO",
    XLABORC.CODORC AS "NÚMERO ORÇAMENTO",
    XLABORC.CODFIC AS "PRONTUÁRIO", 
    XLABORC.PACIENTE AS "NOME DO PACIENTE", 
    (SELECT LEFT(STRING_AGG(XLABORC2.CODEXA, ', '), 50) FROM XLABORC2 WHERE XLABORC2.CODORC = XLABORC.CODORC) AS "EXAMES ORÇADOS",
    (SELECT SUM(XLABORC2.VALLIQUIDO) FROM XLABORC2 WHERE XLABORC2.CODORC = XLABORC.CODORC) AS "VALOR ORÇAMENTO",
    XLABAGENDA.DATA AS "DATA DO AGENDAMENTO",
    (SELECT LEFT(STRING_AGG(XLABAGENDA.CODEXA, ', '), 50) FROM XLABAGENDA WHERE XLABAGENDA.CODFIC = XLABORC.CODFIC AND XLABAGENDA.DATA >= XLABORC.DATA) AS "EXAMES AGENDADOS",
    OPERADOR_AGENDA.APELIDO AS "OPERADOR QUE AGENDOU",
    ML5.AMOSTRA AS "AMOSTRA",
    ML5.DATA AS "DATA REQUISIÇÃO",
    (SELECT LEFT(STRING_AGG(ML51.CODEXA, ', '), 50) FROM ML51 WHERE ML5.CODREQ = ML51.CODREQ AND ML51.DATAENTRADA >= ML5.DATA) AS "EXAMES REQUISIÇÃO",
    ML2.APELIDO AS "CONVENIO REQUISIÇÃO", 
    OPERADOR.APELIDO AS "OPERADOR REQUISIÇÃO",
    CAIXA_ITENS.VALOR,
    CASE 
        WHEN CAIXA_ITENS.VALOR IS NOT NULL THEN 'S'           
        ELSE 'N'
    END AS PAGO
FROM 
    XLABORC
INNER JOIN XLABORC2 ON XLABORC.CODORC = XLABORC2.CODORC
LEFT JOIN ML5 ON ML5.CODFIC = XLABORC.CODFIC AND ML5.DATA >= XLABORC.DATA
LEFT JOIN ML51 ON ML5.CODREQ = ML51.CODREQ AND ML51.DATAENTRADA >= ML5.DATA
LEFT JOIN ML1 ON ML51.CODEXA = ML1.CODEXA
LEFT JOIN OPERADOR ON OPERADOR.CODOPER = ML5.CODOPER
LEFT JOIN CAIXA_ITENS ON ML5.AMOSTRA = CAIXA_ITENS.AMOSTRA 
LEFT JOIN ML2 ON ML51.CODCONV = ML2.CODCONV
LEFT JOIN XLABAGENDA ON XLABAGENDA.CODFIC = XLABORC.CODFIC AND XLABAGENDA.DATA >= XLABORC.DATA
LEFT JOIN OPERADOR AS OPERADOR_AGENDA ON XLABAGENDA.CODOPER_AGENDA = OPERADOR_AGENDA.CODOPER
WHERE 
    XLABORC.DATA BETWEEN '20/05/2024' AND '20/05/2024'
    AND (ML5.DATA IS NULL OR ML5.DATA >= XLABORC.DATA)
    AND XLABORC.CODFIC <> ''
    AND (XLABAGENDA.DATA >= XLABORC.DATA OR XLABAGENDA.DATA IS NULL)  
    AND (ML51.DATAENTRADA = XLABORC.DATA AND  ML51.CODCONV = '0002' OR ML51.CODCONV IS NULL)
    
GROUP BY 
    XLABORC.DATA, XLABORC.CODORC, XLABORC.CODFIC, XLABORC.PACIENTE,
    XLABAGENDA.DATA, OPERADOR.APELIDO, ML5.AMOSTRA, ML5.DATA, ML2.APELIDO,
    ML5.CODREQ, CAIXA_ITENS.VALOR, OPERADOR_AGENDA.APELIDO;

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...