Ir para conteúdo
Fórum Script Brasil

Thiago Cabral

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Tudo que Thiago Cabral postou

  1. moderador, pode encerrar como resolvido... falha minha, me desculpem, o parametro "@P_NRO_NOTA VARCHAR(6)", está errado, seria "@P_NRO_NOTA VARCHAR(7)" obrigado!
  2. 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...
  3. Boa noite, madrugada! Depois de alguns dias aqui, resolvi o problema que por sinal era bem simples, somente um erro de sintaxe, porém eu mudei o nome dos campos das tabelas, segue a baixo para quem necessitar, ou tiver interesse Obs: está com um erro muito loco no campo COD_TESTE, ainda não consegui descifrar, porém a trigger que era o problema, realmente rodou! Obrigado! --cria table's-------------- ----------------------------- CREATE TABLE TB_TESTE ( COD_TESTE INT NOT NULL IDENTITY(1,1), VALOR_TESTE1 DECIMAL(8,2), VALOR_TESTE2 DECIMAL(8,2), VALOR_TESTE3 DECIMAL(8,2), VALOR_TESTE4 DECIMAL(8,2), PRIMARY KEY(COD_TESTE) ) CREATE TABLE TB_RECEBE_VALOR ( COD_A_V INT NOT NULL IDENTITY(1,1), COD_TESTE INT NOT NULL, VALOR_TOTAL_TESTE1 DECIMAL(8,2), VALOR_TOTAL_TESTE2 DECIMAL(8,2), PRIMARY KEY(COD_A_V), FOREIGN KEY(COD_TESTE)REFERENCES TB_TESTE ) --cria a trigger----------------------------------------- ---------------------------------------------------------- CREATE TRIGGER TG_INSERT_TB_RECEBE_VALOR ON TB_TESTE AFTER INSERT AS BEGIN DECLARE @V_VALOR_TOTAL1 DECIMAL(8,2) DECLARE @V_VALOR_TOTAL2 DECIMAL(8,2) BEGIN SET @V_VALOR_TOTAL1 = (SELECT SUM(VALOR_TESTE1 + VALOR_TESTE2) FROM TESTE) SET @V_VALOR_TOTAL2 = (SELECT SUM(VALOR_TESTE3 + VALOR_TESTE4) FROM TESTE) INSERT INTO TB_RECEBE_VALOR(VALOR_TOTAL_TESTE1, VALOR_TOTAL_TESTE2) VALUES (@V_VALOR_TOTAL1, @V_VALOR_TOTAL2) END END
  4. Boa Noite Pessoal, sou novo no fórum, e este é meu primeiro tópico, também sou novo na linguagem SQL(SQL Server 2000), espero que alguém possa me ajudar, o problema é o seguinte: Tenho uma tabela1 com 5 campos e uma outra tabela2 com 3 campos, create table tabela1 ( cod_test int not null, valor1_test decimal(8,2), valor2_test decimal(8,2), valor3_test decimal(8,2), valor4_test decimal(8,2), primary key(cod_test) )GO create table tabela2 ( cod_test2 int not null, cod_test int not null, valor_total decimal(8,2), valor_total2 decimal(8,2), primary key(cod_teste), foreign key(cod_test) references tabela1 )GO o dilema é: Preciso criar uma Trigger que, quando a tabela1 receber os regitros(INSERT), faça as somas (valor1_test + valor2_test), (valor3_test + valor4_test), e insira na tabela2 nos campos (valor_total, valor_total2), passei o dia com a Trigger aqui, mas não funcionou. CREATE TRIGGER TG_INSERT_TABELA2 ON TESTE AFTER INSERT AS BEGIN DECLARE @V_VALOR_TOTAL1 DECIMAL(8,2) DECLARE @V_VALOR_TOTAL2 DECIMAL(8,2) BEGIN SET @V_VALOR_TOTAL1 = (SELECT SUM(valor1_test + valor2_test) FROM tabela1) SET @V_VALOR_TOTAL2 = (SELECT SUM(valor3_test + valor4_test) FROM tabela1) END BEGIN INSERT INTO tabela2 VALUES (1,1,@V_VALOR_TOTAL1,@V_VALOR_TOTAL2) WHERE valor_total = @V_VALOR_TOTAL1 AND valor_total = @VALOR_TOTAL2 END END OBS-1: no campo Values da TRIGGER, como é um teste eu coloquei PK = 1 e FK = 1(referenciando ao registro já inserido) OBS-2: o Tabela Oríginal é um pouco grande pra ser colocada, porém segue a mesma lógica, contém cerca 70 campos, 14 deles serão somados na TRIGGER, e colocados em dois campos da tabela secundária. Espero que me ajudem! Obrigado a todos! Thiago Ericson Cabral thiagoericson@yahoo.com suporte técnico - ValeCard
×
×
  • Criar Novo...