COMO EU FACO ESSE UPDATE

WEBIER 31/12/2012 12:51:52
#416585
Preciso atualizar toda a minha tabela PARCELAS, sendo que somente serão alteradas as parcelas que forem feitas as vendas em CARTÃO... preciso mudar o campo STATUS = 1 e preciso mudar tambem o campo PAGAMENTO....

só que para saber se a compra foi feita em CARTAO, preciso unir as tabelas PARCELAS com a tabela PEDIDOS...

fiz assim:

Dim sSQL As String
sSQL = [Ô]UPDATE parcelas INNER JOIN pedidos ON parcelas.cod_pedido = pedidos.cod_pedido SET PAGAMENTO = DATA, STATUS = 1 WHERE PEDIDOS.PAGAMENTO = CARTAO[Ô]
dbData.Execute sSQL


só que na hora q executo dae erro no INNER... como se ele nao aceitasse unir para atualizar... como faço isso?
TECLA 01/01/2013 15:57:43
#416607
1. Qual é o banco de dados?
2. Mesmo sem saber a resposta do item 1, experimente substituir a TABELA (no comando [txt-color=#0000f0]UPDATE tabela...[/txt-color]) por uma SUB-CONSULTA que faça uma junção com a tabela de PEDIDOS.
Exemplo:
[txt-color=#e80000]UPDATE
(SELECT PAGAMENTO, STATUS
FROM parcelas
INNER JOIN pedidos
ON parcelas.cod_pedido = pedidos.cod_pedido
WHERE pedidos.pagamento = [ô]CARTAO[ô]) tabela
SET pagamento = [ô]valor[ô], STATUS = [ô]valor[ô][/txt-color]

Veja se funciona e retorne o resultado.
WEBIER 01/01/2013 22:32:16
#416612
fiz assim:

[Ô]Update (SELECT PAGAMENTO, STATUS From Parcelas INNER JOIN pedidos ON parcelas.cod_pedido = pedidos.cod_pedido WHERE pedidos.pagamento = [ô]CARTAO[ô]) parcelas SET pagamento = data, STATUS = 1[Ô]


deu o erro:
-2147217900 Line 1: Incorrect syntax near [ô]([ô].
KERPLUNK 02/01/2013 08:53:10
#416616
Assim, pode ser que dê certo:

update parcelas
set
pagamento = data,
status = 1
where
(select pedidos.pagamento where pedidos.cod_pedido = parcelas.cod_pedido) = [ô]CARTAO[ô]

OMAR2011 02/01/2013 12:32:14
#416622
Tentei isto nas tabelas com os mesmos campos porém alterado o Cod tabela parcelas.

sSql = [Ô]UPDATE Parcelas INNER JOIN Pedidos ON Parcelas.cod_pedido=Pedidos.cod_pedido SET Parcelas.PAGAMENTO = #12/12/2020#, Parcelas.STATUS = [ô]4[ô], Pedidos.PAGAMENTO = [ô][Ô] & [Ô]CARTÂO[Ô] & [Ô][ô] Where parcelas.cod=2;[Ô]

sSql = [Ô]UPDATE Pedidos INNER JOIN Parcelas ON Pedidos.cod_pedido = Parcelas.cod_pedido SET Parcelas.PAGAMENTO = #8/8/2023#, Parcelas.STATUS = [ô]7[ô], Pedidos.PAGAMENTO = [ô][Ô] & [Ô]CARTÂO[Ô] & [Ô][ô] Where Pedidos.PAGAMENTO = [ô][Ô] & [Ô]CARTÂO[Ô] & [Ô][ô];[Ô]

Esta segunda é bom pensar antes de executar.
Grande dor de CABEÇA virá.


MARCELO.TREZE 02/01/2013 12:48:50
#416623
Resposta escolhida
Outra maneira

sSQL = [Ô]UPDATE parcelas SET PAGAMENTO = DATA, STATUS = 1 FROM parcelas INNER JOIN pedidos ON parcelas.cod_pedido = pedidos.cod_pedido WHERE PEDIDOS.PAGAMENTO = [ô]CARTAO[ô][Ô]

WEBIER 02/01/2013 14:56:03
#416630
Citação:

:
Assim, pode ser que dê certo:


update parcelas
set
pagamento = data,
status = 1
where
(select pedidos.pagamento where pedidos.cod_pedido = parcelas.cod_pedido) = [ô]CARTAO[ô]



deu o erro:

-2147217900 The column prefix [ô]pedidos[ô] does not match with a table name or alias name used in the query.

Citação:

:
Tentei isto nas tabelas com os mesmos campos porém alterado o Cod tabela parcelas.

sSql = [Ô]UPDATE Parcelas INNER JOIN Pedidos ON Parcelas.cod_pedido=Pedidos.cod_pedido SET Parcelas.PAGAMENTO = #12/12/2020#, Parcelas.STATUS = [ô]4[ô], Pedidos.PAGAMENTO = [ô][Ô] & [Ô]CARTÂO[Ô] & [Ô][ô] Where parcelas.cod=2;[Ô]

sSql = [Ô]UPDATE Pedidos INNER JOIN Parcelas ON Pedidos.cod_pedido = Parcelas.cod_pedido SET Parcelas.PAGAMENTO = #8/8/2023#, Parcelas.STATUS = [ô]7[ô], Pedidos.PAGAMENTO = [ô][Ô] & [Ô]CARTÂO[Ô] & [Ô][ô] Where Pedidos.PAGAMENTO = [ô][Ô] & [Ô]CARTÂO[Ô] & [Ô][ô];[Ô]

Esta segunda é bom pensar antes de executar.
Grande dor de CABEÇA virá.




Eu não conseguir entendeu sua ideia....
KERPLUNK 02/01/2013 15:37:52
#416635
Citação:

:
:
Assim, pode ser que dê certo:


update parcelas
set
pagamento = data,
status = 1
where
(select pedidos.pagamento where pedidos.cod_pedido = parcelas.cod_pedido) = [ô]CARTAO[ô]



deu o erro:

-2147217900 The column prefix [ô]pedidos[ô] does not match with a table name or alias name used in the query.



Por acaso você simplesmente copiou e colou?

Tente assim então:

update parcelas
set
pagamento = data,
status = 1
where
(select pedidos.pagamento from pedidos where pedidos.cod_pedido = parcelas.cod_pedido) = [ô]CARTAO[ô]
MARCELO.TREZE 02/01/2013 21:40:38
#416647
tentou a que eu postei?

sSQL = [Ô]UPDATE parcelas SET PAGAMENTO = DATA, STATUS = 1 FROM parcelas INNER JOIN pedidos ON parcelas.cod_pedido = pedidos.cod_pedido WHERE PEDIDOS.PAGAMENTO = [ô]CARTAO[ô][Ô]
Tópico encerrado , respostas não são mais permitidas