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

(Resolvido) select com retorno 'NULL'


Thiago Cabral

Pergunta

Boa noite,

Salve salve galera!

To com um problema aqui... tenho uma procedure que calcula impostos, até ai tudo bem, o problema é o seguinte:

quando eu utilizo ela pelo 'exec', todos os campos que ela me retona, ficam com o valor 'NULL',

porém se eu utilizar todo o código que nela contem, ou seja, compilando apenas o miolo da procedure, ignorando os parametrôs e o bloco 'BEGIN-END', e indicando os valores que deveriam ser recebidos através dos parâmentros, ela me retorna o mesmo select com os mesmos campos que a procedure retorna, porém com os valores de impostos calculados, ou seja, não aparece valor 'NULL'.

segue o código da procedure:

CREATE PROCEDURE SP_CALCULA_IMP_NOTA(
				      @P_NRO_NOTA VARCHAR(6),
				      @P_REGIAO_ISS_N VARCHAR(20)							
				   )
AS DECLARE @V_COD_NOTA INT
	DECLARE @V_TOTAL_IMP_N DECIMAL(8,2)
	DECLARE @V_VALOR_ISS DECIMAL(2,2)
BEGIN SET @V_COD_NOTA = (SELECT COD_NOTA FROM TB_NOTA WHERE NRO_NOTA = @P_NRO_NOTA)
	IF EXISTS(SELECT COD_NOTA FROM TB_SERVICO_N WHERE COD_NOTA = @V_COD_NOTA)
	SET @V_VALOR_ISS = (SELECT VAL_IMP_ISS FROM TB_VAL_IMP_ISS WHERE REGIAO_IMP_ISS = @P_REGIAO_ISS_N)
	SELECT SUM(VALOR_SERV_N) * 0.65 / 100 AS [PIS],
	SUM(VALOR_SERV_N) * 3 / 100 AS [COFINS],
	SUM(VALOR_SERV_N) * 16 / 100 * 15 / 100 AS [IRPJ],
	SUM(VALOR_SERV_N) * 32 / 100 * 9 /100 AS [CSLL], 
 	SUM(VALOR_SERV_N) * 1.5 / 100 AS [IRRF],
	SUM(VALOR_SERV_N) * @V_VALOR_ISS / 100 AS [ISS]
	FROM TB_SERVICO_N WHERE COD_NOTA = @V_COD_NOTA
	SET @V_TOTAL_IMP_N = (SELECT SUM(VALOR_SERV_N) * 0.65 / 100 FROM TB_SERVICO_N WHERE COD_NOTA = @V_COD_NOTA) 
                                                       + (SELECT SUM(VALOR_SERV_N) * 3 / 100 FROM TB_SERVICO_N WHERE COD_NOTA = @V_COD_NOTA) 
                                                       + (SELECT SUM(VALOR_SERV_N) * 16 / 100 * 15 / 100 FROM TB_SERVICO_N WHERE COD_NOTA = @V_COD_NOTA) 
                                                       + (SELECT SUM(VALOR_SERV_N) * 32 / 100 * 9 /100 FROM TB_SERVICO_N WHERE COD_NOTA = @V_COD_NOTA)
                                                       + (SELECT SUM(VALOR_SERV_N) * 2 / 100 FROM TB_SERVICO_N WHERE COD_NOTA = @V_COD_NOTA)
                                                       + (SELECT SUM(VALOR_SERV_N) * @V_VALOR_ISS / 100 FROM TB_SERVICO_N WHERE COD_NOTA = @V_COD_NOTA)
	SELECT @V_TOTAL_IMP_N AS [TOTAL DOS IMPOSTOS]--seleciona a soma dos impostos
END

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Bom eu poderia fazer o calculo na própria aplicação, porém tem o calculo do ISS que é por região, intão por causa desse motivo teria que realizar o calculo no próprio banco.

Se alguém poder me ajudar, agradeço...

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

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
      652k
×
×
  • Criar Novo...