Trazer dados em um select de duas tabelas
29/01/2020
0
Boa tarde amigos, tenho uma dúvida aqui.
No meu sistema VB.net eu tenho a tela de inserir itens no orçamento, nessa mesma tela eu preciso que me traga o ultimo valor vendido DAQUELE ITEM para AQUELE CLIENTE, até ai tudo bem, meu problema é que os pedidos ficam salvos em 2 tabelas diferentes a primeira salva os dados do pedido e a outra os itens do pedido ( tb_pedido e tb_pedidoitens). como eu faço pra buscar o ultimo valor daquele produto comparando os dados das 2 tabelas ? segue como estão as 2 tabelas
TABELA DE PEDIDO
TABELA DE PEDIDO ITENS
Oque relaciona as 2 são os campos pedido_id, se alguém puder me ajudar agradecerei bastante !
No meu sistema VB.net eu tenho a tela de inserir itens no orçamento, nessa mesma tela eu preciso que me traga o ultimo valor vendido DAQUELE ITEM para AQUELE CLIENTE, até ai tudo bem, meu problema é que os pedidos ficam salvos em 2 tabelas diferentes a primeira salva os dados do pedido e a outra os itens do pedido ( tb_pedido e tb_pedidoitens). como eu faço pra buscar o ultimo valor daquele produto comparando os dados das 2 tabelas ? segue como estão as 2 tabelas
TABELA DE PEDIDO
CREATE TABLE [dbo].[tb_pedido]( [pedido_id] [int] IDENTITY(1,1) NOT NULL, [DATA_MOV] [date] NULL, [PRODUTO_ID] [int] NULL, [PESSOA_CLIENTE_ID] [int] NULL ) ON [PRIMARY] GO
TABELA DE PEDIDO ITENS
CREATE TABLE [dbo].[tb_pedidoiten]( [pedidoiten_id] [int] IDENTITY(1,1) NOT NULL, [RODUTO_ID] [int] NULL, [descricao] [varchar](60) NULL, [valor] [decimal](24, 6) NULL, [pedido_id] [int] NULL ) ON [PRIMARY] GO
Oque relaciona as 2 são os campos pedido_id, se alguém puder me ajudar agradecerei bastante !
Wictor
Curtir tópico
+ 0
Responder
Post mais votado
31/01/2020
SELECT TOP 1 COALESCE(B.[valor],0) VALOR FROM [dbo].[tb_pedido] A INNER JOIN [dbo].[tb_pedidoiten] B ON B.[pedido_id] = A.[pedido_id] AND B.[PRODUTO_ID] = 'PRODUTO_PRODURADO' WHERE A.[PESSOA_CLIENTE_ID] = 'CLIENTE_PROCURADO' ORDER BY A.[DATA_MOV] DESC
Note que, se o produto nunca foi vendido para o cliente, o valor retornado será 0 (zero)
Emerson Nascimento
Responder
Mais Posts
03/02/2020
Anderson Gonçalves
Boa tarde amigos, tenho uma dúvida aqui.
No meu sistema VB.net eu tenho a tela de inserir itens no orçamento, nessa mesma tela eu preciso que me traga o ultimo valor vendido DAQUELE ITEM para AQUELE CLIENTE, até ai tudo bem, meu problema é que os pedidos ficam salvos em 2 tabelas diferentes a primeira salva os dados do pedido e a outra os itens do pedido ( tb_pedido e tb_pedidoitens). como eu faço pra buscar o ultimo valor daquele produto comparando os dados das 2 tabelas ? segue como estão as 2 tabelas
TABELA DE PEDIDO
TABELA DE PEDIDO ITENS
Oque relaciona as 2 são os campos pedido_id, se alguém puder me ajudar agradecerei bastante !
No meu sistema VB.net eu tenho a tela de inserir itens no orçamento, nessa mesma tela eu preciso que me traga o ultimo valor vendido DAQUELE ITEM para AQUELE CLIENTE, até ai tudo bem, meu problema é que os pedidos ficam salvos em 2 tabelas diferentes a primeira salva os dados do pedido e a outra os itens do pedido ( tb_pedido e tb_pedidoitens). como eu faço pra buscar o ultimo valor daquele produto comparando os dados das 2 tabelas ? segue como estão as 2 tabelas
TABELA DE PEDIDO
CREATE TABLE [dbo].[tb_pedido]( [pedido_id] [int] IDENTITY(1,1) NOT NULL, [DATA_MOV] [date] NULL, [PRODUTO_ID] [int] NULL, [PESSOA_CLIENTE_ID] [int] NULL ) ON [PRIMARY] GO
TABELA DE PEDIDO ITENS
CREATE TABLE [dbo].[tb_pedidoiten]( [pedidoiten_id] [int] IDENTITY(1,1) NOT NULL, [RODUTO_ID] [int] NULL, [descricao] [varchar](60) NULL, [valor] [decimal](24, 6) NULL, [pedido_id] [int] NULL ) ON [PRIMARY] GO
Oque relaciona as 2 são os campos pedido_id, se alguém puder me ajudar agradecerei bastante !
Fala boy,
Eu trabalho com Firebird qual o teu banco de dados, porque você logo logo vai precisar de mais coisas, se quiser entre em contato isso que o rapaz respondeu não resolve, acho que ele não percebeu que você pediu o ULTIMO REGISTRO para o cliente que você determinar, você pode adicionar isso aqui
SELECT TOP 1
COALESCE(B.[valor],0) VALOR,
Max(CAMPOCHAVEPRIMÁRIA)AS MAXIMO
FROM
[dbo].[tb_pedido] A
INNER JOIN
[dbo].[tb_pedidoiten] B ON B.[pedido_id] = A.[pedido_id] AND B.[PRODUTO_ID] = 'PRODUTO_PRODURADO'
WHERE
A.[PESSOA_CLIENTE_ID] = 'CLIENTE_PROCURADO
ORDER BY
A.[DATA_MOV] DESC
Assim você pega o maior registro para esse cliente.
Se precisar de mais ajuda, me procure.
Skype: anderson@case13.com.br
Responder
Clique aqui para fazer login e interagir na Comunidade :)