SELECT COM RELACIONAMENTO ENTRE 2 TABELAS
Olá Amigos.
tenho duas Tabelas, Produtos e Histórico de Compras,
preciso fazer um select que traga todos os itens da tabela produtos e o valor da ultima compra na tabela de hist de Compra.
sendo Tabela produtos 1:1 e Hist de Compra (N)
idPRO ID_Mov
Codigo idpro
Descricao Vlr_Compra
DT_Mov
se alguém poder me ajudar,
desde já agradeço
tenho duas Tabelas, Produtos e Histórico de Compras,
preciso fazer um select que traga todos os itens da tabela produtos e o valor da ultima compra na tabela de hist de Compra.
sendo Tabela produtos 1:1 e Hist de Compra (N)
idPRO ID_Mov
Codigo idpro
Descricao Vlr_Compra
DT_Mov
se alguém poder me ajudar,
desde já agradeço
SELECT A.IDPRO,A.CODIGO,A.DESCRICAO,B.VLR_COMPRA
FROM PRODUTOS A
INNER JOIN HISTORICOCOMPRA B
ON B.IDPRO = A.IDPRO
ORDER BY B.DT_MOV DESC,A.IDPRO
FROM PRODUTOS A
INNER JOIN HISTORICOCOMPRA B
ON B.IDPRO = A.IDPRO
ORDER BY B.DT_MOV DESC,A.IDPRO
Olá F001e, o ORDER BY B.DT_MOV DESC,A.IDPRO vai classificar a data, mas preciso remover( não listar) as demais datas do mesmo item.
mas então se vc precisa trazer o valor da ultima compra...no pedido vai ter a data e a hora do pedido...por isso ordenei por data desc assim traz o ultimo pedido que foi feito...tenta usar o TOP 1
SELECT TOP 1,A.IDPRO,A.CODIGO,A.DESCRICAO,B.VLR_COMPRA
FROM PRODUTOS A
INNER JOIN HISTORICOCOMPRA B
ON B.IDPRO = A.IDPRO
ORDER BY B.DT_MOV DESC,A.IDPRO
SELECT TOP 1,A.IDPRO,A.CODIGO,A.DESCRICAO,B.VLR_COMPRA
FROM PRODUTOS A
INNER JOIN HISTORICOCOMPRA B
ON B.IDPRO = A.IDPRO
ORDER BY B.DT_MOV DESC,A.IDPRO
eu preciso listar todos os itens da tabela pedido e somente a ultima compra da tabela Histórico,
um item pode ter varias compras, desejo ver somente a ultima.
um item pode ter varias compras, desejo ver somente a ultima.
então ao invés de usar INNER usa o LEFT
Para fazer isto,você terá que criar um novo CAMPO na tabela Historico para identificar a compra.
ID_Mov
[txt-color=#e80000] IdCompra[/txt-color] é através deste Campo que irá indentificará as compras.
idpro
Vlr_Compra
DT_Mov
Exemplo:
IdMov IdCompra Idpro Vlr_Compra DT_Mov
1 001 23 16,00 20/11/2012
2 001 26 116,00 20/11/2012
3 002 14 45,00 20/11/2012
4 002 178 79,00 20/11/2012
Se não identificar a compra,pela consulta acima vai aparecer todas as compras realizado no dia.
ID_Mov
[txt-color=#e80000] IdCompra[/txt-color] é através deste Campo que irá indentificará as compras.
idpro
Vlr_Compra
DT_Mov
Exemplo:
IdMov IdCompra Idpro Vlr_Compra DT_Mov
1 001 23 16,00 20/11/2012
2 001 26 116,00 20/11/2012
3 002 14 45,00 20/11/2012
4 002 178 79,00 20/11/2012
Se não identificar a compra,pela consulta acima vai aparecer todas as compras realizado no dia.
qual é o banco de dados?
então galerinha.. estou usando o MYSQL
usado INNER JOIN ou LEFT JOIN, listou varias vezes o mesmo produto.
usado INNER JOIN ou LEFT JOIN, listou varias vezes o mesmo produto.
Vamos ver se consigo ajudar
SELECT a.*, b.* FROM produtos a LEFT JOIN histdecompras b on a.idpro= b.idpro AND b.dt_mov = (select TOP 1, c.dt_mov from histdecompras c where c.idpro= a.idpro) ORDER BY a.codigo DESC, b.dt_mov DESC
Tópico encerrado , respostas não são mais permitidas