COMO FA?O ESSE UPDATE COM INNER JOIN

WEBIER 01/12/2014 01:02:40
#442871
como vou fazer esse Update?

[Ô]UPDATE PEDIDOS SET PEDIDOS.ENTRADA = parcelas.pagamento FROM cliente INNER JOIN pedidos ON cliente.codigo = pedidos.cod_cliente INNER JOIN parcelas ON parcelas.cod_pedido = pedidos.cod_pedido WHERE (pedidos.tipo_pagamento = [ô]à prazo[ô]) AND (pedidos.data_compra = parcelas.pagamento) AND (parcelas.numero = 1)[Ô]
TUNUSAT 01/12/2014 08:28:50
#442874
WEBIER,

Não entendi... você quer disparar o UPDATE no VB6 ou tem algum problema no UPDATE?
Se for para disparar dentro do VB6, basta usar um [Ô]Command[Ô]:
Option Explicit
Dim conConexao As ADODB.Connection
Dim rstBancoDados As ADODB.Recordset
Dim comCommand As ADODB.Command


Public Sub CommandText(strTexto As String)
[ô]rotina que seta os parâmetros do objeto command. Ela recebe o texto do command e o executa
Set comCommand = New Command

With comCommand
.ActiveConnection = SUA_CONEXAO
.CommandType = adCmdText
.CommandText = strTexto
.Execute
End With

Set comCommand = Nothing
End Sub


[][ô]s,
Tunusat.
WEBIER 01/12/2014 16:34:01
#442884
A parte de conexão está funcionando perfeitamente....

A questão é fazer o UPDADE com essas INNER JOIN e essas WHERE....

Queria saber o que fiz de errado, pois dar uma msg de erro na linha da consulta...
FBUR 01/12/2014 16:44:31
#442885
Tenta assim:


[Ô]UPDATE PEDIDOS SET PEDIDOS.ENTRADA = parcelas.pagamento FROM (cliente INNER JOIN pedidos ON cliente.codigo = pedidos.cod_cliente (INNER JOIN parcelas ON parcelas.cod_pedido = pedidos.cod_pedido)) WHERE (pedidos.tipo_pagamento = [ô]à prazo[ô]) AND (pedidos.data_compra = parcelas.pagamento) AND (parcelas.numero = 1)[Ô]
WEBIER 01/12/2014 17:38:41
#442891
Deu o mesmo erro!
FSDFERNANDO 01/12/2014 17:52:06
#442892
Qual o erro que está sendo retornado?
FOXMAN 02/12/2014 10:06:05
#442918
Cara Primeiro vem o comando UPDATE e logo em seguida o INNER JOIN. Vc está já setando o valor para um campo antes de informar o JOIN.
Corretamente seria algo como....

UPDATE tabela1 INNER JOIN tabela2 on tabela1.campochave = tabela2.campochave set tabela1.campoa = [Ô]b[Ô], tabela2.campoa=[Ô]c[Ô]
WHERE tabela1.campoxxxxx=[Ô]xxxxxxxxxxx[Ô];
FOXMAN 02/12/2014 10:12:15
#442919
Resposta escolhida
Veja ae como ficaria o seu update.

UPDATE PEDIDOS
INNER JOIN CLIENTE ON CLIENTE.CODIGO = PEDIDOS.COD_CLIENTE
INNER JOIN PARCELAS ON PARCELAS.COD_PEDIDO = PEDIDOS.COD_PEDIDO
SET PEDIDOS.ENTRADA = parcelas.pagamento
WHERE PEDIDOS.TIPO_PAGAEMNTO = [ô]À PRAZO[ô]
AND PEDIDOS.DATA_COMPRA = PARCELAS.PAGAMENTO
AND PARCELAS.NUMERO = 1;

Ajusta ai que funciona.
WEBIER 02/12/2014 10:57:47
#442921
Deu o mesmo erro!

Incorrect syntax near the keyword [ô]INNER[ô]

Ai para facilitar ainda mais, tirei a tabela CLIENTE da SQL, ficando assim

UPDATE PEDIDOS INNER JOIN PARCELAS ON PEDIDOS.COD_PEDIDO = PARCELAS.COD_PEDIDO SET PEDIDOS.ENTRADA = parcelas.pagamento WHERE PEDIDOS.TIPO_PAGAEMNTO = [ô]À PRAZO[ô] AND PEDIDOS.DATA_COMPRA = PARCELAS.PAGAMENTO AND PARCELAS.NUMERO = 1


Verifiquei os nomes das tabelas e os nomes dos campos... estão corretos!

Deu o mesmo erro!
FOXMAN 02/12/2014 11:09:20
#442922
Que banco que é ?
FOXMAN 02/12/2014 11:19:25
#442924

Se for MySQL é da forma anterior mesmo.
Se for SQL SERVER tenta assim.

UPDATE PEDIDOS
SET PEDIDOS.ENTRADA = PARCELAS.PAGAMENTO
FROM PEDIDOS
INNER JOIN PARCELAS
ON PEDIDOS.COD_PEDIDO = PARCELAS.COD_PEDIDO
WHERE
PEDIDOS.TIPO_PAGAMENTO = [ô]À PRAZO[ô] AND PEDIDOS.DATA_COMPRA = PARCELAS.PAGAMENTO AND PARCELAS.NUMERO = 1


Tópico encerrado , respostas não são mais permitidas