SQL SERVER INSERIR DADOS MULTIPLICADO PELA VARIAVEL

13/03/2021

0

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
Paulo Victor

Paulo Victor

Responder

Post mais votado

14/03/2021

faça algo assim:
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
)
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.

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

14/03/2021

Paulo Victor

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
Responder

14/03/2021

Emerson Nascimento

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.
Responder

31/05/2021

Paulo Victor

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
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar