Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Public2004

Intrução SQL

Recommended Posts

Ola,

 

Como criar um SELECT para recuperar campos em 03 tabelas, estou tentando assim mas não estou conseguindo

RS_Pedido_Item.Open "SELECT Pedido_Item.codigo_pedido, Pedido_Item.codigo_produto, Pedido_Item.quantidade, Produtos.preco_unitario, Produtos.peso, Pedido_Tamcor.nome_produto, Pedido_Tamcor.tamcor_produto FROM Pedido_Item, Produtos, Pedido_Tamcor WHERE Pedido_Item.codigo_pedido = " & Session("codigo_pedido") & " AND Pedido_Item.codigo_produto = Produtos.codigo_produto AND Pedido_Item.codigo_pedido = Pedido_Tamcor.codigo_pedido", Conexao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola,Como criar um SELECT para recuperar campos em 03 tabelas, estou tentando assim mas não estou conseguindo

RS_Pedido_Item.Open "SELECT Pedido_Item.codigo_pedido, Pedido_Item.codigo_produto, Pedido_Item.quantidade, Produtos.preco_unitario, Produtos.peso, Pedido_Tamcor.nome_produto, Pedido_Tamcor.tamcor_produto FROM Pedido_Item, Produtos, Pedido_Tamcor WHERE Pedido_Item.codigo_pedido = " & Session("codigo_pedido") & " AND Pedido_Item.codigo_produto = Produtos.codigo_produto AND Pedido_Item.codigo_pedido = Pedido_Tamcor.codigo_pedido", Conexao
Que banco de dados você utiliza?Usa o join pra unir as tabelas..... se você usar o Access fica ainda mais fácil.... monta a consulta no access e copia o SQL pra tua aplicação e coloca as variáveis neceessárias para o teu critério e pronto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se as tabelas forem relacionadas o melhor é usar o join mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade a instrução que postei, funciona em partes...

RS_Pedido_Item.Open "SELECT Pedido_Item.codigo_pedido, Pedido_Item.codigo_produto, Pedido_Item.quantidade, Produtos.preco_unitario, Produtos.peso, Pedido_Tamcor.nome_produto, Pedido_Tamcor.tamcor_produto FROM Pedido_Item, Produtos, Pedido_Tamcor WHERE Pedido_Item.codigo_pedido = " & Session("codigo_pedido") & " AND Pedido_Item.codigo_produto = Produtos.codigo_produto AND Pedido_Item.codigo_pedido = Pedido_Tamcor.codigo_pedido", Conexao

Relacionando as tabelas e usando INNER JOIN também funciona em partes:

RS_Pedido_Item.Open "SELECT Pedido_Item.codigo_pedido, Pedido_Item.codigo_produto, Pedido_Item.quantidade, Produtos.nome_produto, Produtos.preco_unitario, Produtos.peso, Pedido_Tamcor.tamcor_produto FROM (Pedido_Item INNER JOIN Produtos ON Pedido_Item.codigo_produto = Produtos.codigo_produto) INNER JOIN Pedido_Tamcor ON Pedido_Tamcor.codigo_pedido = Pedido_Item.codigo_pedido WHERE Pedido_Item.codigo_pedido = "& Session("codigo_pedido") &" ", Conexao

O problema é que quando listo os registros, os mesmos não aparecem corretamente:

<%While Not RS_Pedido_Item.EOF%>Código: <%= RS_Pedido_Item("codigo_produto") %><br>Nome: <%= RS_Pedido_Item("nome_produto") %> - <%= RS_Pedido_Item("tamcor_produto") %><br>Valor unitário: <%= FormatNumber(RS_Pedido_Item("preco_unitario"),2) %><br>Quantidade: <%= RS_Pedido_Item("quantidade") %><br>Subtotal: <%= FormatNumber(RS_Pedido_Item("quantidade") * RS_Pedido_Item("preco_unitario"),2)%><br><%'O Sistema lista os registros a atualiza a tabela "Pedido_Item" na sequência:Conexao.Execute "UPDATE Pedido_Item SET preco_unitario = cdbl('" & FormatNumber(RS_Pedido_Item("preco_unitario")) & "'), nome_produto_item='" & nome_produto & "', tamcor_produto='" & tamcor_produto & "' WHERE codigo_pedido = " & Session("codigo_pedido") & " AND codigo_produto = " & RS_Pedido_Item("codigo_produto")RS_Pedido_Item.MoveNextWend%>
O que acontece é que na tabela "Pedido_Item" ele altera todos os valores de "tamcor_produto" para o último escolhido e lista na tela os registros duplicados, onde está o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.