Trazer dados em um select de duas tabelas

29/01/2020

32

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
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

Wictor

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

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
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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar