SQL SERVER INSERIR DADOS MULTIPLICADO PELA VARIAVEL
ola amigos ! gostaria de saber se alguem sabe inserir dados no sql server multiplicando por uma variavel?
ex:
contrato de trabalho :
valor do contrato 500,00
mensalidade 5
valor mensal 100,00
na minha tabela tem
idcontrato
valorcontrato
mensal
valormensal
datavencimento1
datavencimento2
datavencimento3
datavencimento4
datavencimento5
hoje coloco um insert da seguinte maneira
datavencimento1 = date()+1m
datavencimento2 = date()+2m
etc ... até o datavencimento5
mas vem a duvida... caso eu queira dividir só em 2x consigo fazer dentro do sql uma multiplicação
exemplo:
caso mensal = 2
insert
datavencimento1 = date()+1m
datavencimento2 = date()+2m
caso mensal = 3
datavencimento1 = date()+1m
datavencimento2 = date()+2m
datavencimento3 = date()+3m
e assim vai
ou tenho que fazer isso na programação.
ps: ja tenho isso dentro no ASP Classico queria fazer direto pelo banco
ex:
contrato de trabalho :
valor do contrato 500,00
mensalidade 5
valor mensal 100,00
na minha tabela tem
idcontrato
valorcontrato
mensal
valormensal
datavencimento1
datavencimento2
datavencimento3
datavencimento4
datavencimento5
hoje coloco um insert da seguinte maneira
datavencimento1 = date()+1m
datavencimento2 = date()+2m
etc ... até o datavencimento5
mas vem a duvida... caso eu queira dividir só em 2x consigo fazer dentro do sql uma multiplicação
exemplo:
caso mensal = 2
insert
datavencimento1 = date()+1m
datavencimento2 = date()+2m
caso mensal = 3
datavencimento1 = date()+1m
datavencimento2 = date()+2m
datavencimento3 = date()+3m
e assim vai
ou tenho que fazer isso na programação.
ps: ja tenho isso dentro no ASP Classico queria fazer direto pelo banco
Paulo Victor
Curtidas 0
Melhor post
Emerson Nascimento
14/03/2021
faça algo assim:
as variáveis iniciados por @ devem ser substituídas pelos conteúdos que você pretende inserir.
dica: esta modelagem não é uma boa prática. o dia que precisar aumentar o número de parcelas você terá de manipular a tabela.
o ideal é gravar a data de início da vigência do contrato e, ter uma outra tabela para guardar o parcelamento ou calcular o parcelamento em tempo real e apresentar em tela.
insert into tabela (valorcontrato, mensal, valormensal, datavencimento1, datavencimento2, datavencimento3, datavencimento4, datavencimento5) values ( @valorcontrato, @mensal, @valormensal, dateadd(m, 1, getdate()), -- vencimento 1 case(@mensal > 1 then dateadd(m, 2, getdate()) else null end), -- vencimento 2 case(@mensal > 2 then dateadd(m, 3, getdate()) else null end), -- vencimento 3 case(@mensal > 3 then dateadd(m, 4, getdate()) else null end), -- vencimento 4 case(@mensal > 4 then dateadd(m, 4, getdate()) else null end) -- vencimento 5 )
dica: esta modelagem não é uma boa prática. o dia que precisar aumentar o número de parcelas você terá de manipular a tabela.
o ideal é gravar a data de início da vigência do contrato e, ter uma outra tabela para guardar o parcelamento ou calcular o parcelamento em tempo real e apresentar em tela.
GOSTEI 1
Mais Respostas
Paulo Victor
13/03/2021
oi emerson obrigado pela resposta .
esqueci de falar uma coisa . a minha dificuldade é que a parcela pode chegar até a 90 parcelas
não tem como fazer alguma coisa automática ?
ou tem que fazer case até o 90
esqueci de falar uma coisa . a minha dificuldade é que a parcela pode chegar até a 90 parcelas
não tem como fazer alguma coisa automática ?
ou tem que fazer case até o 90
GOSTEI 0
Emerson Nascimento
13/03/2021
Você pode resolver isso com stored procedure. Daí você manda os parâmetros e a SP resolve a questão, fazendo um laço para preencher os campos de vencimento.
GOSTEI 0
Paulo Victor
13/03/2021
Você pode resolver isso com stored procedure. Daí você manda os parâmetros e a SP resolve a questão, fazendo um laço para preencher os campos de vencimento.
obrigado meu amigo . esqueci de responder aqui . fiz com procedure vlw
GOSTEI 0