CLAUSULA WHERE "DI-NOVO"
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.
Aqui eu realizo a gravação da nota
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)
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
eu ja tentei....naum funfou...
tenta colocar o -1 ente aspas('-1')
O -1 EH DO TIPO NUMERICO....
por isso mesmo tem que colocar entre aspas
entra aspas eh para tipo texto.....ou estou enganado ?
tanto faz,o melhor seria usar aspas em todos tipos de dados
Pessoal resolvi mudar a consulta....
criei um campo a mais na tabela.....nf e resolvi o problema
a consulta ficou assim.
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......
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......
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