AJUDA COM QUERY

 Tópico anterior Próximo tópico Novo tópico

AJUDA COM QUERY

SQL / DATABASE

 Compartilhe  Compartilhe  Compartilhe
#488964 - 26/05/2019 20:01:12

JORGESALES
CEARA
Cadast. em:Maio/2015


Última edição em 26/05/2019 20:02:28 por JORGESALES

Pessoal em uma tabela de lançamentos (Entrada) ,
eu pego a lista de peças disponíveis para venda,
nesse caso que foram lançadas, o problema é que
preciso pegar o ValorVenda que foi lançado por último:
SELECT P.Nome Peça, E.ValorVenda
FROM Pecas P
INNER JOIN Entrada E ON P.Id = E.IdPeca
GROUP BY P.Id

Seu usar o MAX(E.ValorVenda) ele traz o maior valor mas
nem sempre o valor mais alto será o último que foi lançado,
pesquisei sobre o comando LAST que se encaixaria
perfeitamente no que preciso mas não funcionou.
Alguém conhece uma outra forma?


Cursos de Excel e VB6:
cursoexcelvba.com.br




#488965 - 26/05/2019 21:25:27

PLUGSOFTSM
SANTA MARIA
Cadast. em:Julho/2015


Tenta assim
SELECT Top 1 P.Nome Peça, E.ValorVenda
FROM Pecas P
INNER JOIN Entrada E ON P.Id = E.IdPeca order by [data da venda] desc



Resposta escolhida #488973 - 27/05/2019 10:58:53

MARIOANDRADE
SANTO ANTONIO DE JESUS
Cadast. em:Abril/2012


O que poderia ser feito é a cada nova inclusão todos os preços daquele produto
serem atualizados na tabela Entrada, nesse caso você perderia o histórico, para
que isso não aconteça você pode criar um campo com o nome PrecoExibição e
atualizar todos, na hora de pegar o valor venda pegaria desse campo.

Obviamente que esse procedimento não é o mais didático.

Cursos de Excel e VB6:
cursoexcelvba.com.br



#488974 - 27/05/2019 11:08:28

JORGESALES
CEARA
Cadast. em:Maio/2015


Citação:
:
Tenta assim
SELECT Top 1 P.Nome Peça, E.ValorVenda
FROM Pecas P
INNER JOIN Entrada E ON P.Id = E.IdPeca order by [data da venda] desc

Apresenta erro de sintaxe
Error Code : 1064
Você tem um erro de sintaxe no seu SQL próximo a '1 P.Nome Peça, E.ValorVenda
FROM Pecas P
INNER JOIN Entrada E ON P.Id = E.IdP' na linha 1


Cursos de Excel e VB6:
cursoexcelvba.com.br




#488975 - 27/05/2019 11:12:22

JORGESALES
CEARA
Cadast. em:Maio/2015


Citação:
:
O que poderia ser feito é a cada nova inclusão todos os preços daquele produto
serem atualizados na tabela Entrada, nesse caso você perderia o histórico, para
que isso não aconteça você pode criar um campo com o nome PrecoExibição e
atualizar todos, na hora de pegar o valor venda pegaria desse campo.

Obviamente que esse procedimento não é o mais didático.

Professor, não havia pensado nisso, funciona e resolve o meu problema.
Vou manter o tópico aberto pois se alguém souber como fazer essa consulta
ajudará mais pessoas.
Desde já muito obrigado.

Cursos de Excel e VB6:
cursoexcelvba.com.br




#488977 - 27/05/2019 12:32:42

OMAR2007
MONTES CLAROS
Cadast. em:Maio/2019


A slq da certo,mas algo relacionado ao nome do campo pode está errado.Vermelho.
Error Code : 1064
Você tem um erro de sintaxe no seu SQL próximo a '1 P.Nome Peça, E.ValorVenda
FROM Pecas P
INNER JOIN Entrada E ON P.Id = E.IdP' na linha 1

SELECT TOP 1 P.NomePeca, [E].ValorVenda
FROM Peca AS P INNER JOIN Entrada AS E ON P.[Id]=[E].IdPeca
ORDER BY E.[Idpeca] DESC;

Sem erro meu teste com Access.



#488979 - 27/05/2019 12:45:24

JORGESALES
CEARA
Cadast. em:Maio/2015


Obrigado Omar mas infelizmente não funcionou, estou
usando banco de dados MySQL por isso não é necessário
usar o AS para apelidar os campos mas
fiz vários testes com a sua query e todas apresentam erros, creio
que estamos chegando perto.

Cursos de Excel e VB6:
cursoexcelvba.com.br




#488981 - 27/05/2019 13:01:29

JABA
CABO FRIO
Cadast. em:Agosto/2005


SELECT P.Nome Peça, E.ValorVenda
FROM Pecas P
INNER JOIN Entrada E ON P.Id = E.IdPeca order by [data da venda] desc limit 1;


_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#488987 - 27/05/2019 16:24:57

JORGESALES
CEARA
Cadast. em:Maio/2015


Citação:
:
SELECT P.Nome Peça, E.ValorVenda
FROM Pecas P
INNER JOIN Entrada E ON P.Id = E.IdPeca order by [data da venda] desc limit 1;

JABA, seu código (com algumas adaptações) foi o que mais se aproximou do que preciso,
todavia eu preciso da lista completa de todas as peças que estão lançadas na tabela Entrada
para que eu possa preencher uma combobox,  no seu exemplo só traz uma peça por vez, até daria
para fazer um For mas não vem ao caso.

Cursos de Excel e VB6:
cursoexcelvba.com.br




#488990 - 27/05/2019 19:25:38

JABA
CABO FRIO
Cadast. em:Agosto/2005


Citação:
:
:
SELECT P.Nome Peça, E.ValorVenda
FROM Pecas P
INNER JOIN Entrada E ON P.Id = E.IdPeca order by [data da venda] desc limit 1;

JABA, seu código (com algumas adaptações) foi o que mais se aproximou do que preciso,
todavia eu preciso da lista completa de todas as peças que estão lançadas na tabela Entrada
para que eu possa preencher uma combobox,  no seu exemplo só traz uma peça por vez, até daria
para fazer um For mas não vem ao caso.


A única finalidade dessa consulta é trazer o ValorVenda que foi lançado por último, como foi pedido por ti na criação do tópico. Eu apenas alterei o que foi feito pelo Omar para funcionar no Mysql.

_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#488995 - 28/05/2019 17:18:01

JORGESALES
CEARA
Cadast. em:Maio/2015


Citação:
...A única finalidade dessa consulta é trazer o ValorVenda que foi lançado por último...

Sim, exatamente, agradeço por sua ajuda mas preciso da lista completa.
Por hora a sugestão do professor Mário Andrade está resolvendo o problema.



Cursos de Excel e VB6:
cursoexcelvba.com.br




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por JORGESALES em 09/06/2019 19:00:50