CLAUSULA WHERE "DI-NOVO"

LCSD 13/12/2006 11:17:39
#189676
Pessoal, sempre tive difuculdades com o WHERE, e desta vez naum eh diferente.
No insert abaixo seleciono dados de uma nota fiscal, faço a soma de uma tabela de movimento de produtos que está relacionada a tbl de NF.

O que acontece ?

Quando retiro a cláusula WHERE (NF.GRAVADO = -1) a consulta eh realizada, porem ela adiciona todos registro para a tabela movimentos, e quantas vezes for executada tantas vezes ela ira adicionar, Por isso eu necessito filtrar somente as notas cujo valor Gravado seja "-1", pois logo em seguida a execução dessa instrução eu executo outra passando o Gravado para "1". Abaixo a instrução.

        SQL = "INSERT INTO Movimentos ( DataDoPedido, CodigoCliente, Cliente, Total, NomeFuncionario, TipoMovimento, OrigLanc, ID, CodigoPedido )" & _
"SELECT NF.DtEmissao, NF.CodCliente, NF.Cliente, Sum(MovimentoProdutos.total) AS SomaDetotal, '" & frmMain.StatusBar.Panels(2) & "' as Expr2 , 'ORÇAMENTO' AS Expr1, 'NF' AS Expr5, NF.Nota, NF.Nota " & _
"FROM NF INNER JOIN MovimentoProdutos ON NF.Nota = MovimentoProdutos.transid WHERE (NF.GRAVADO = -1)" & _
"GROUP BY NF.DtEmissao, NF.CodCliente, NF.Cliente, 'NOTA FISCAL', 'NF', NF.Nota, NF.Nota"

bd.Execute (SQL)


Aqui eu realizo a gravação da nota

          SQL = "UPDATE NF SET NF.Gravado ='1' WHERE NF.Nota =" & frmCadVendas.Text2.Text
bd.Execute (SQL)

USUARIO.EXCLUIDOS 13/12/2006 11:23:28
#189678

Bom tente fazer o seguinte...

Agregue o valor de -1 á uma variável..e coloque na consulta essa variável..n sei se já tentou isso mas...foi uma idéia q eu tive!

Boa sorte..qq coisa..poste novamente
LCSD 13/12/2006 11:27:17
#189679
eu ja tentei....naum funfou...
RAMSES 13/12/2006 11:41:37
#189684
tenta colocar o -1 ente aspas('-1')
LCSD 13/12/2006 11:53:06
#189689
O -1 EH DO TIPO NUMERICO....

RAMSES 13/12/2006 11:57:03
#189693
por isso mesmo tem que colocar entre aspas
LCSD 13/12/2006 12:03:09
#189695
entra aspas eh para tipo texto.....ou estou enganado ?

RAMSES 13/12/2006 12:05:23
#189696
tanto faz,o melhor seria usar aspas em todos tipos de dados
LCSD 13/12/2006 12:09:11
#189698
Pessoal resolvi mudar a consulta....

criei um campo a mais na tabela.....nf e resolvi o problema

a consulta ficou assim.

         SQL = "INSERT INTO Movimentos ( DataDoPedido, CodigoCliente, Cliente, NomeFuncionario, TipoMovimento, OrigLanc, ID, CodigoPedido, Total )" & _
"SELECT NF.DtEmissao, NF.CodCliente, NF.Cliente, '" & frmMain.StatusBar.Panels(2) & "' AS Expr2, 'ORÇAMENTO' AS Expr1, 'NF' AS Expr5, NF.Nota, NF.Nota, NF.TotaldaNota " & _
"from NF " & _
"GROUP BY NF.DtEmissao, NF.CodCliente, NF.Cliente, 'NF', NF.Nota, NF.Nota, NF.TotaldaNota, NF.Gravado " & _
"HAVING (((NF.Gravado)=-1));"


Citação:

RAMSES escreveu:
tenta colocar o -1 ente aspas([à']-1[à'])



Usa-se esse critério q vc passou qdo o campo na tabela eh do tipo txt, pelo menos foi assim q aprendi...

Se eu estiver engando me desculpa......


LCSD 13/12/2006 12:12:01
#189699
Citação:

RAMSES escreveu:
tanto faz,o melhor seria usar aspas em todos tipos de dados



Ok..Ramses, vou verificar essa informação....mas de qualquer forma agradeço a tentativa.......


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