Valor negativo em query SQL
Caros
Tenho a seguinte query montanda no código.
Acontece que quando esse valor P.EST_MIN é negativo, a query não funciona.
O que pode ser?
Valeu
Tenho a seguinte query montanda no código.
if chkEstMin.Checked then
CommandText := CommandText + ' AND ((' + SaldoPrinc + ')) - P.QTE_RES) < P.EST_MIN)';
Acontece que quando esse valor P.EST_MIN é negativo, a query não funciona.
O que pode ser?
Valeu
Elton Ésqui
Curtidas 0
Respostas
Eduardo Marcolongo
04/10/2010
Por favor, passe um exemplo de valor.Provavelmente o resultado da (' + SaldoPrinc + ')) - P.QTE_RES) seja maior que o P.EST_MIN
GOSTEI 0
Deivison Melo
04/10/2010
Elton Ésqui,
Qual o banco de dados utilizado?
1º - Poderia efetuar o tratamento já direto na query!
2º - Você poderá utilizar a function ABS (para pegar o valor absoluto)
Exemplos no link: http://www.delphibasics.co.uk/RTL.asp?Name=Abs
Qualquer coisa estou à disposição!!!
Emanoel Deivison
GOSTEI 0
Leonardo Xavier
04/10/2010
Cara é o seguinte a query trabalha com dois valores -1 e 0, quando o valor é 0 é porque a querry nao localizou o registro, mas quando a querry é -1 o registro foi localizado. Se seu sistema esta dando erro com o valor de indice a ser localizado ou comparado seria interesnte vc verificar seu código para ver onde poderia estar o problema, pode ser inclusive com o relacionamenteo de suas tabelas. Mas verifique ai se houver alguma coisa que eu possa ajudar você poste aqui.
GOSTEI 0
Elton Ésqui
04/10/2010
Então...mais ou menos assim:
Saldo disp.: 15
Estoque min.: 50
Nesse caso, se o check estiver marcado ele vai exibir o produto, porque o saldo disp. é menor que o est. min.
Acontece que o prod. pode ser reservado e gerar o estoque begativo, aí qdo o est. min é -15, por exemplo, não exibe.
Nesse momento ele faz isso no código:
Trecho
O banco é ORACLE, mas utilizo vários aqui que podem utilizar o programa, como MSSQL, Firebird, Interbase e etc.
Saldo disp.: 15
Estoque min.: 50
Nesse caso, se o check estiver marcado ele vai exibir o produto, porque o saldo disp. é menor que o est. min.
Acontece que o prod. pode ser reservado e gerar o estoque begativo, aí qdo o est. min é -15, por exemplo, não exibe.
Nesse momento ele faz isso no código:
Trecho
if chkEstMin.Checked then
CommandText := CommandText + ' AND ((' + SaldoPrinc + ')) - P.QTE_RES) < P.EST_MIN)';
if radioTipo.ItemIndex = 0 then
CommandText := CommandText +
' ORDER BY P.DESC_DEN,P.COD_DEN, P.NOME, P.CODIGO'
else
CommandText := CommandText +
' ORDER BY P.DESC_DEN,P.COD_DEN, P.NOME, P.COD_REF';
AbreTabela(True, cdsProd, 'Produto');
if RecordCount = 0 then
begin
MessageBeep(0);
Application.MessageBox('Nenhum produto selecionado.', 'Informação',
MB_ICONINFORMATION
+ MB_OK);
btOk.Enabled := True;
ProdIni.SetFocus;
Exit;
end;
O banco é ORACLE, mas utilizo vários aqui que podem utilizar o programa, como MSSQL, Firebird, Interbase e etc.
GOSTEI 0
Elton Ésqui
04/10/2010
Como faço pra finalizar o tópico?
GOSTEI 0
Eriley Barbosa
04/10/2010
Para finalizar alguém tem que responder para você.
GOSTEI 0