ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

update com 2 clausulas

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
valmirluis42
Novato
Novato


Registrado: Segunda-Feira, 17 de Agosto de 2015
Mensagens: 60

MensagemEnviada: Sex Ago 17, 2018 9:46 am    Assunto: update com 2 clausulas Responder com Citação

Tenho esse select :

Código:
select CODIGOMATERIAL,ULTIMOCUSTO,ULTIMOCUSTOCALCULADO1  from MATERIALALMOXARIFADO


e preciso que ele esteja dentro desse update:

Código:
update TABELAPRECOITEM set PRECOVENDA1=('o resultado do select aqui') where codigotabelapreco='01002'


e preciso que esse select seja melhorado da sequinte maneira:

preciso que peque os valores que ele tiver nessas duas colunas ULTIMOCUSTO(prefencia esse se houverpois é o mais atualizado) ou ULTIMOCUSTOCALCULADO1( caso o ULTIMOCUSTO não tenha valor) e divida por 0,9 (fazendo com que o produto receba 10% no valor que custou)


o join pode ser com MATERIALALMOXARIFADO.CODIGOMATERIAL =TABELAPRECOITEM.codigotabelaprecoitem
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Ago 17, 2018 10:31 am    Assunto: Responder com Citação

Bom dia,

Qual banco de dados e versão você está utilizando?


Editado pela última vez por imex em Ter Mar 07, 2023 5:46 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
valmirluis42
Novato
Novato


Registrado: Segunda-Feira, 17 de Agosto de 2015
Mensagens: 60

MensagemEnviada: Sex Ago 17, 2018 11:02 am    Assunto: Responder com Citação

2016
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Ago 17, 2018 11:40 am    Assunto: Responder com Citação

SQL Server? Experimente dessa forma:

Código:
update p
set p.PRECOVENDA1 = case when m.ULTIMOCUSTO > 0 then m.ULTIMOCUSTO else m.ULTIMOCUSTOCALCULADO1 end / 0.9
from TABELAPRECOITEM as p
inner join MATERIALALMOXARIFADO as m
    on m.CODIGOMATERIAL = p.codigotabelaprecoitem
where
    p.codigotabelapreco = '01002'


Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
valmirluis42
Novato
Novato


Registrado: Segunda-Feira, 17 de Agosto de 2015
Mensagens: 60

MensagemEnviada: Sex Ago 17, 2018 2:11 pm    Assunto: Responder com Citação

Apresentou essa mensagem:

Mensagem 515, Nível 16, Estado 2, Linha 1
Não é possível inserir o valor NULL na coluna 'PRECOVENDA1', tabela 'arraialjul18.dbo.TABELAPRECOITEM'; a coluna não permite nulos. Falha em UPDATE.
A instrução foi finalizada.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Ago 17, 2018 3:05 pm    Assunto: Responder com Citação

Pela mensagem acredito que existam casos em que os 2 custos são nulos. Para desconsiderar esses casos experimente deixar a clausula Where da seguinte forma:

Código:
where
    p.codigotabelapreco = '01002' and
    (m.ULTIMOCUSTO is not null or m.ULTIMOCUSTOCALCULADO1 is not null)


Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB