ONLY EXPERT EXIBIR DADOS DE 1 TABELA UNIDAS

WEBIER 29/12/2009 00:13:55
#330622
Possuo a seguinte SQL:

    SQL = [Ô]SELECT tb_prod.DESCRICAO AS var_Desc, tb_prod.CODIGO AS var_codEnt, tb_prod.QUANT_ESTOQUE AS var_Quant, tb_proEnt_Itens.CUSTO AS var_Custo, tb_proEnt_Itens.FRETE AS var_Frete, tb_proEnt_Itens.IMPOSTO_VALOR_COMPRA AS var_ImpCompra, tb_proEnt_Itens.CUSTO_COMPRA AS var_VlrCompra, tb_proEnt_Itens.IMPOSTO_VALOR_VENDA AS var_ImpVenda, tb_proEnt_Itens.LUCRO_VALOR AS Var_Lucro, tb_proEnt_Itens.VENDA AS var_vlrvenda FROM (Produtos AS tb_prod INNER JOIN Produtos_Entrada_Itens AS tb_proEnt_Itens ON tb_prod.CODIGO = tb_proEnt_Itens.CODIGO_PRODUTO) INNER JOIN [SELECT tb_Prod_Ent_Itens2.CODIGO_PRODUTO, Max(tb_Prod_Ent_Itens2.CODIGO) AS Codigo FROM Produtos_Entrada_Itens AS tb_Prod_Ent_Itens2 GROUP BY tb_Prod_Ent_Itens2.CODIGO_PRODUTO]. AS tb_imaginada ON (tb_proEnt_Itens.CODIGO_PRODUTO = tb_imaginada.CODIGO_PRODUTO) AND (tb_proEnt_Itens.CODIGO = tb_imaginada.Codigo) WHERE tb_prod.DESCRICAO = [ô][Ô] & cboConsProduto.Text & [Ô][ô] ORDER BY [Ô] & INDICE


FUNCIONANDO PERFEITAMENTE!

como dar para perceber... ai uni 2 ou mais tabelas para exibição num grid.

Meu problema eh o seguinte:

Mesmo que não haja registro na tabela Produtos_Entrada_Itens e havendo somente o produto cadastrado na tabela PRODUTO, quero q o produto apareça no grid.

dessa forma que tah ai... o produto tem que está nas 2 tabelas para aparecer no grid.

Como eu faço isso?
TECLA 29/12/2009 00:24:36
#330625
Experimente substituir o INNER JOIN por LEFT JOIN (ou RIGHT JOIN).
RCMRO 29/12/2009 08:15:51
#330639
Resposta escolhida
Ai vai arrumado...

SQL = [Ô]SELECT tb_prod.DESCRICAO AS var_Desc, tb_prod.CODIGO AS var_codEnt, tb_prod.QUANT_ESTOQUE AS var_Quant, tb_proEnt_Itens.CUSTO AS var_Custo, tb_proEnt_Itens.FRETE AS var_Frete, tb_proEnt_Itens.IMPOSTO_VALOR_COMPRA AS var_ImpCompra, tb_proEnt_Itens.CUSTO_COMPRA AS var_VlrCompra, tb_proEnt_Itens.IMPOSTO_VALOR_VENDA AS var_ImpVenda, tb_proEnt_Itens.LUCRO_VALOR AS Var_Lucro, tb_proEnt_Itens.VENDA AS var_vlrvenda FROM (Produtos AS tb_prod LEFT JOIN Produtos_Entrada_Itens AS tb_proEnt_Itens ON tb_prod.CODIGO = tb_proEnt_Itens.CODIGO_PRODUTO) LEFT JOIN [SELECT tb_Prod_Ent_Itens2.CODIGO_PRODUTO, Max(tb_Prod_Ent_Itens2.CODIGO) AS Codigo FROM Produtos_Entrada_Itens AS tb_Prod_Ent_Itens2 GROUP BY tb_Prod_Ent_Itens2.CODIGO_PRODUTO]. AS tb_imaginada ON (tb_proEnt_Itens.CODIGO_PRODUTO = tb_imaginada.CODIGO_PRODUTO) AND (tb_proEnt_Itens.CODIGO = tb_imaginada.Codigo) WHERE tb_prod.DESCRICAO = [ô][Ô] & cboConsProduto.Text & [Ô][ô] ORDER BY [Ô] & INDICE


Para te ajudar, o LEFT JOIN trás todos os registros da tabela primária e somente os registros da tabela secundária que existirem, ou seja [Ô]PRODUTO LEFT JOIN MOVIMENTO[Ô] trará todos os produtos e os movimentos dos que tiverem movimento. Se fosse [Ô]PRODUTO INNER JOIN MOVIMENTO[Ô], só traria os produtos que tivessem movimento...
Tópico encerrado , respostas não são mais permitidas