Ir para conteúdo

POWERED BY:

Arquivado

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

ATS#

SELECT E INSERT em 2 tabelas!!!

Recommended Posts

Produtos

 

codigo_produto | nome_produto | preco_unitario | preco_custo | quant |

88 |MOUSE MX |52.00 | 50.00 | 0

85 |CELULAR |25.00 | 22.00 | 0

84 |TECLADO |15.00 | 13.00 | 0

 

 

Pedido_item

 

codigo_pedido | codigo_produto | quant | preco_unitario | preco_custo

22 |88 |8 | ? | ?

22 |85 |2 | ? | ?

22 |84 |3 | ? | ?

23 |84 |11 | ? | ?

 

 

Preciso anexar, os precos unitarios e custos na tabela pedido_item, e "ADICIONAR" ("tipo

 

somar com q ja tem") a quantidade da tabela pedido_item no campo quant da tabela produtos,

 

para mais tarde consultar os precos e visualizar os valores antigos. Pra isso preciso fazer

 

um select e depois um insert.

 

Como faço isso?

 

<%codigo_pedido = Session("codigo_pedido")Set RS_Final = Server.CreateObject("ADODB.Recordset")RS_Final.CursorType = adOpenKeysetRS_Final.LockType = adLockOptimisticRS_Final.Open "SELECT ?, objConnRS_Final.CloseSet Final1 = Server.CreateObject("ADODB.Recordset")Final1 = "INSERT INTO ?objConn.Execute(Final1)objConn.Close	Response.Redirect "form1_8dadoscodok.asp"	Response.End%>

Agradeço a ajuda....

Um abraço...

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para inserir, buscar, apagar etc em mais de uma tabela você deve usar o INNER JOINEXEMPLO:

Se o nome de um campo estiver incluído em mais de uma tabela na cláusula FROM, preceda-o com o nome da tabela e o operador . (ponto). No exemplo abaixo, o campo Departamento está nas tabelas Funcionários e Supervisores. A instrução SQL seleciona Departamento da tabela Funcionários e NomeSupv da tabela Supervisores: SELECT Funcionários.Departamento, Supervisores.NomeSupvFROM Funcionários INNER JOIN SupervisoresWHERE Funcionários.Departamento = Supervisores.Departamento;

BJUS......... ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lella obrigado por sua ajuda.....mais acho que naum especifiquei o q queria exatamente...entaum sendo mais claro.

Quero apenas inserir na tabela tblRegistrosVendasEntradaPedidos_Item os valores de preco_unitario

Fiz um select

SELECT tblRegistrosVendasEntradaPedido_Item.*, Produtos.* FROM tblRegistrosVendasEntradaPedido_Item, Produtos WHERE tblRegistrosVendasEntradaPedido_Item.codigo_pedido = " & Session("codigo_pedido") & " AND tblRegistrosVendasEntradaPedido_Item.codigo_produto = " & Request.QueryString("codigo_produto") & " AND Produtos.codigo_produto = " & Request.QueryString("codigo_produto")
buscando os dados de valores preco_unitario da tabela produto e agora estou com problema em inserir

INSERT INTO tblRegistrosVendasEntradaPedido_Item (codigo_pedido, codigo_produto, quantidade) VALUES (" & Session("codigo_pedido") & ", " & Request.QueryString("codigo_produto") & ", 1)"
na tabela tblRegistrosVendasEntradaPedidos_Item, preciso de uma luz...

Desculpem o codigo gigante mais e pra entender melhor o sistema da pagina.

 

 

<%If Session("codigo_pedido") = "" Then	Set RS_Max = Server.CreateObject("ADODB.Recordset")	RS_Max.Open "SELECT MAX(codigo_pedido) AS max_codigo_pedido FROM tblRegistrosVendasEntradaPedidos", objConn	If IsNull(RS_Max("max_codigo_pedido")) Then  novo_codigo_pedido = 1	Else  novo_codigo_pedido = RS_Max("max_codigo_pedido") + 1	End If	RS_Max.Close	objConn.Execute "INSERT INTO tblRegistrosVendasEntradaPedidos (codigo_pedido) VALUES (" & novo_codigo_pedido & ")"	Session("codigo_pedido") = novo_codigo_pedidoEnd IfSet RS_Pedido_Item = Server.CreateObject("ADODB.Recordset")If Request.QueryString("codigo_produto") <> "" Then		RS_Pedido_Item.Open "SELECT tblRegistrosVendasEntradaPedido_Item.*, Produtos.* FROM tblRegistrosVendasEntradaPedido_Item, Produtos WHERE tblRegistrosVendasEntradaPedido_Item.codigo_pedido = " & Session("codigo_pedido") & " AND tblRegistrosVendasEntradaPedido_Item.codigo_produto = " & Request.QueryString("codigo_produto") & " AND Produtos.codigo_produto = " & Request.QueryString("codigo_produto"), objConn		If RS_Pedido_Item.EOF Then    objConn.Execute "INSERT INTO tblRegistrosVendasEntradaPedido_Item (codigo_pedido, codigo_produto, quantidade) VALUES (" & Session("codigo_pedido") & ", " & Request.QueryString("codigo_produto") & ", 1)"	End If	RS_Pedido_Item.Close	End IfIf Request.Form <> "" Then		objConn.Execute "DELETE FROM tblRegistrosVendasEntradaPedido_Item WHERE codigo_pedido = " & Session("codigo_pedido")	For Each field_name In Request.Form  If field_name <> "B1" And Request.Form(field_name) <> "0" Then 	 comandoSQL = "INSERT INTO tblRegistrosVendasEntradaPedido_Item (codigo_pedido, codigo_produto, quantidade) VALUES (" 	 comandoSQL = comandoSQL & Session("codigo_pedido") & ", " & field_name & ", " & Request.Form(field_name) & ")" 	 objConn.Execute comandoSQL  End If	NextEnd If%>

<%RS_Pedido_Item.Open "SELECT tblRegistrosVendasEntradaPedido_Item.*, Produtos.* FROM tblRegistrosVendasEntradaPedido_Item, Produtos WHERE codigo_pedido = " & Session("codigo_pedido") & " AND tblRegistrosVendasEntradaPedido_Item.codigo_produto = Produtos.codigo_produto", objConn%>

<%If not RS_Pedido_Item.EOF then RS_Pedido_Item.MoveFirsttotal = 0While Not RS_Pedido_Item.EOF%>                              <tr align="center">                            <td height="24" bgcolor="#CCCCCC"><a class="TextoPadrao"><%= RS_Pedido_Item("codigo_barra") %></a></td>                            <td bgcolor="#CCCCCC"><a class="TextoPadrao"><%= RS_Pedido_Item("disponivel") %></a></td>                            <td bgcolor="#CCCCCC"><a class="TextoPadrao"><%= RS_Pedido_Item("nome_produto") %></a></td>                            <td align="left" bgcolor="#CCCCCC"><a class="TextoPadrao"><%= FormatCurrency(RS_Pedido_Item("preco_unitario")) %></a></td>                            <td bgcolor="#CCCCCC"><input name="<%= RS_Pedido_Item("codigo_produto") %>" type="TEXT" class="formulario_box" value="<%= RS_Pedido_Item("quantidade") %>" size="2" maxlength="2"></td>                            <td align="left" bgcolor="#CCCCCC"><a class="TextoPadrao"><%= FormatCurrency(RS_Pedido_Item("quantidade") * RS_Pedido_Item("preco_unitario"))%></a></td>        </tr><%   	total = total + RS_Pedido_Item("quantidade") * RS_Pedido_Item("preco_unitario")	    RS_Pedido_Item.MoveNextWend	RS_Pedido_Item.Close' Agora grava e mostra o subtotalSession("total") = totalobjConn.Execute "UPDATE tblRegistrosVendasEntradaPedidos SET total = CDbl('" & FormatNumber(total) & "') WHERE codigo_pedido = " & Session("codigo_pedido")objConn.Close%>

Um abraço a todos...

 

ATS#

Compartilhar este post


Link para o post
Compartilhar em outros sites

sei la se eh isso.. ta meio confuso.. mas ai vai...

 

'-- isso permanece intácto.. apesar de armazenar dados demais desnecessários... hehehSELECT tblRegistrosVendasEntradaPedido_Item.*, Produtos.* FROM tblRegistrosVendasEntradaPedido_Item, Produtos WHERE tblRegistrosVendasEntradaPedido_Item.codigo_pedido = " & Session("codigo_pedido") & " AND tblRegistrosVendasEntradaPedido_Item.codigo_produto = " & Request.QueryString("codigo_produto") & " AND Produtos.codigo_produto = " & Request.QueryString("codigo_produto")

da forma mais funcional...

'---aqui você faz uma consulta q grava o valor unitáriosql = "SELECT valor_unit FROM produtos WHERE codigo_produto = " & Request.QueryString("codigo_produto") set tabProduto = Nothingset tabProduto = objConn.execute(sql)'---no insert você acrescenta a opção de inserir o valor unitário armazenado anteriormente.. INSERT INTO tblRegistrosVendasEntradaPedido_Item (codigo_pedido, codigo_produto, quantidade, valor_unit) VALUES (" & Session("codigo_pedido") & ", " & Request.QueryString("codigo_produto") & ", 1, '"& tabProduto("valor_unit") &"')"

da pra fazer direto tb, menos processos... soh naum sei se vai rodar na sua base de dados.. mas em mysql roda...

 

'---aqui você faz uma consulta q grava o valor unitário direto no insertsql = "INSERT INTO tblRegistrosVendasEntradaPedido_Item (codigo_pedido, codigo_produto, quantidade, valor_unit) SELECT '" & Session("codigo_pedido") & "',' " & Request.QueryString("codigo_produto") & "',' 1', valor_unit FROM produtos WHERE idproduto="& Request.QueryString("codigo_produto") "

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow amigo valeu mesmo, funcionou muito bem como queria e usando o select com o insert, mais processegindo o codigo, na hora de atualizar a quantidade do produto ele apaga os valores de preco_unitario .

pq será ?

 

If Request.QueryString("codigo_produto") <> "" Then		RS_Pedido_Item.Open "SELECT tblRegistrosVendasEntradaPedido_Item.*, Produtos.* FROM tblRegistrosVendasEntradaPedido_Item, Produtos WHERE tblRegistrosVendasEntradaPedido_Item.codigo_pedido = " & Session("codigo_pedido") & " AND tblRegistrosVendasEntradaPedido_Item.codigo_produto = " & Request.QueryString("codigo_produto") & " AND Produtos.codigo_produto = " & Request.QueryString("codigo_produto"), objConn		If RS_Pedido_Item.EOF Then    objConn.Execute "INSERT INTO tblRegistrosVendasEntradaPedido_Item (codigo_pedido, codigo_produto, quantidade, preco_unitario, preco_custo) SELECT '" & Session("codigo_pedido") & "',' " & Request.QueryString("codigo_produto") & "',' 1', preco_unitario, preco_custo FROM Produtos WHERE codigo_produto = "& Request.QueryString("codigo_produto") & ""	End If	RS_Pedido_Item.Close	End IfIf Request.Form <> "" Then		objConn.Execute "DELETE FROM tblRegistrosVendasEntradaPedido_Item WHERE codigo_pedido = " & Session("codigo_pedido")
Ate aki beleza....

 

For Each field_name In Request.Form  If field_name <> "B1" And Request.Form(field_name) <> "0" Then 	 comandoSQL = "INSERT INTO tblRegistrosVendasEntradaPedido_Item (codigo_pedido, codigo_produto, quantidade) VALUES ("  	 comandoSQL = comandoSQL & Session("codigo_pedido") & ", " & field_name & ", " & Request.Form(field_name) & ")" 	 objConn.Execute comandoSQL  End If	NextEnd If
Neste insert q ta o problema...

 

E mais uma vez valeu mesmo por sua ajuda!!!

 

Um abraço..

 

ATS#

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer funcionar...

 

Mais obrigado mesmo assim....

 

Valeu....

 

T+

ATS#

 

 

If field_name <> "B1" And Request.Form(field_name) <> "0" Then 	 comandoSQL = "INSERT INTO tblRegistrosVendasEntradaPedido_Item (codigo_pedido, codigo_produto, quantidade, preco_unitario, preco_custo) SELECT '"   	 comandoSQL = comandoSQL & Session("codigo_pedido")  & "', '" & field_name & "', '" & Request.Form(field_name) & "', preco_unitario, preco_custo FROM Produtos WHERE codigo_produto = "& field_name & "" 	 objConn.Execute comandoSQL  End If

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.