| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
valmirluis42 Novato

Registrado: Segunda-Feira, 17 de Agosto de 2015 Mensagens: 60
|
Enviada: Sex Ago 17, 2018 9:46 am Assunto: update com 2 clausulas |
|
|
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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Ago 17, 2018 10:31 am Assunto: |
|
|
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 |
|
 |
valmirluis42 Novato

Registrado: Segunda-Feira, 17 de Agosto de 2015 Mensagens: 60
|
Enviada: Sex Ago 17, 2018 11:02 am Assunto: |
|
|
| 2016 |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Ago 17, 2018 11:40 am Assunto: |
|
|
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 |
|
 |
valmirluis42 Novato

Registrado: Segunda-Feira, 17 de Agosto de 2015 Mensagens: 60
|
Enviada: Sex Ago 17, 2018 2:11 pm Assunto: |
|
|
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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Ago 17, 2018 3:05 pm Assunto: |
|
|
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 |
|
 |
|