Como fazer uma instrução SQL com 4 tabelas e mostrar no DBGrid?
Pessoal,
Preciso fazer uma instrução SQL,
para mostrar 04 tabelas no DBGrid, a saber:
Tabela Pessoa-> Campos (Id,TipoCadastro e Nome)
O Tipo Cadastro tem 3 opções-> (Fornecedor,Parceiros e Clientes)
Dessa tabela preciso mostrar o Campo Nome cujo TipoCadastro seja = ''Fornecedor'';
Tabela Produto-> Campos (Id,Descricao,Preco).
Dessa Tabela preciso mostrar somente o Campo (Descricao).
Tabela Compra -> Campos (Id, Id_Pessoa, DataEmissao,ValorTotal)
Somente os campos (DataEmissao,ValorTotal)
Tabela CompraItens-> Campos( Id,Id_Compra,Id_Produto,Quantidade,ValorUnitario,ValorTotal)
Somente os campos Quantidade,ValorUnitario e o valorTotal
Podem me ajudar????
Preciso fazer uma instrução SQL,
para mostrar 04 tabelas no DBGrid, a saber:
Tabela Pessoa-> Campos (Id,TipoCadastro e Nome)
O Tipo Cadastro tem 3 opções-> (Fornecedor,Parceiros e Clientes)
Dessa tabela preciso mostrar o Campo Nome cujo TipoCadastro seja = ''Fornecedor'';
Tabela Produto-> Campos (Id,Descricao,Preco).
Dessa Tabela preciso mostrar somente o Campo (Descricao).
Tabela Compra -> Campos (Id, Id_Pessoa, DataEmissao,ValorTotal)
Somente os campos (DataEmissao,ValorTotal)
Tabela CompraItens-> Campos( Id,Id_Compra,Id_Produto,Quantidade,ValorUnitario,ValorTotal)
Somente os campos Quantidade,ValorUnitario e o valorTotal
Podem me ajudar????
Mauricio Bomfim
Curtidas 0
Respostas
Arthur Heinrich
05/10/2023
select f.Nome, c.DataEmissao, c.ValorTotal valor_total_compra, p.Descricao descricao_produto, i.Quantidade, i.ValorUnitario, i.ValorTotal valor_total_item from Pessoa f join Compra c on c.Id_Pessoa = f.Id join CompraItens i on i.Id_Compra = c.Id join Produto p on p.Id = i.Id_Produto where f.TipoCadastro = 'Fornecedor' order by c.DataEmissao, c.id, p.Descricao
GOSTEI 0
Mauricio Bomfim
05/10/2023
Muito Obrigado.Valeu.
GOSTEI 0
Mauricio Bomfim
05/10/2023
Muito Obrigado.Valeu.
Fiz a instrução conforme sua orientação. Mas quando abre a dbgrid os campos estão fora da ordem. Quanto faço o teste da instrução no SQLite Studio dá certo, mas na dbgrid do delphi aparece fora daordem.Como posso corrigir a ordenação dos campos. Segue minha instrução abaixo:procedure TPageCompras.Pesquisar;
var
SQL : String;
FiltroPesquisa : string;
// FiltroTipo : string;
begin
SQL := ('select f.Nome, c.DataEmissao, c.ValorTotal valor_total_compra,'+
'p.Descricao descricao_produto, i.Quantidade, i.ValorUnitario, i.ValorTotal valor_total_item'+
'from Pessoa f join Compra c on c.Id_Pessoa = f.Id join CompraItens i on i.Id_Compra = c.Id' +
'join Produto p on p.Id = i.Id_Produto where f.TipoCadastro = "Fornecedor" ' +
' order by c.DataEmissao, c.id, p.Descricao');
FiltroPesquisa := TUtilitarios.LikeFind(edtPesquisar.Text, DBGrid1);
dmCompras.cdsCompra.Close;
dmCompras.cdsCompra.CommandText := 'Select * from Compra where 1 = 1' + FiltroPesquisa;
dmCompras.cdsCompra.Open;
edtPesquisar.Clear;
inherited;
end;
GOSTEI 0
Emerson Nascimento
05/10/2023
dê um duplo clique no dataset. se os campos estiverem persistidos, ordene-os como desejar.
veja se os campos também não estão persistidos na grade (columns).
veja se os campos também não estão persistidos na grade (columns).
GOSTEI 0