Fórum SQL não consigo arredondar valores #241579

05/07/2004

0

Select Vasilhame.Tipo, Sum(Itens.Quantidade) as Qtde
From Vasilhame,Pedidos,Itens
Where Itens.CodVas = Vasilhame.Codigo
Group By Vasilhame.Tipo
Order By Vasilhame.Tipo


nessa query, o campo Qtde lá em cima onde receber a somatória do campo qtde da tabela itens, qdo vou mostra-lo no dbgrid ele não quer arrendondar o campo e fica com um valores estranos tipo: 6756 q teria q ser 7, como eu faço para q ele arredonde, já tentei mudar a propriedade da Query no DisplayFormat e no EditFormat, mas não adiantou :D


Janete

Janete

Responder

Posts

05/07/2004

Rômulo Barros

Você poderá criar um campo calculado e indicar qtde para ele, utilizando para isso a procedure Trunc(X:Real) para arredondar o valor. :idea:

DataModule.ClientDataSetMeuCampoCalculado.AsVariant := Trunc(DataModule.ClientDataSet.Fields[0].AsFloat);



Responder

Gostei + 0

05/07/2004

Dataclass

[quote:519e613e42=´Undeclared Identifier´]Você poderá criar um campo calculado e indicar qtde para ele, utilizando para isso a procedure Trunc(X:Real) para arredondar o valor. :idea:

DataModule.ClientDataSetMeuCampoCalculado.AsVariant := Trunc(DataModule.ClientDataSet.Fields[0].AsFloat);
[/quote:519e613e42]


Acho que seria interessante usar isto postado pelo colega, mas talvez usando a funcção ´Round()´


Responder

Gostei + 0

05/07/2004

Janete

[quote:561748d38e=´Undeclared Identifier´]Você poderá criar um campo calculado e indicar qtde para ele, utilizando para isso a procedure Trunc(X:Real) para arredondar o valor. :idea:

DataModule.ClientDataSetMeuCampoCalculado.AsVariant := Trunc(DataModule.ClientDataSet.Fields[0].AsFloat);
[/quote:561748d38e]

Não consegui, coloquei desta forma: Criei um campo calculado como variant e em oncalcfielsa coloquei:

QryVasSD.AsVariant := Trunc(QryVas.Fields[0].AsFloat);

e deu o erro: Incompatible types: ´Variant´ and ´Ind64´


Responder

Gostei + 0

05/07/2004

Rômulo Barros

DataModule.ClientDataSetMeuCampoCalculado.[color=red:f01e8c7b50]AsInteger[/color:f01e8c7b50] := Trunc(DataModule.ClientDataSet.Fields[0].AsFloat);


Responder

Gostei + 0

05/07/2004

Janete

[quote:34ed98c648=´Undeclared Identifier´]DataModule.ClientDataSetMeuCampoCalculado.[color=red:34ed98c648]AsInteger[/color:34ed98c648] := Trunc(DataModule.ClientDataSet.Fields[0].AsFloat);[/quote:34ed98c648]

Acredita não deu nenhum erro, mas tb não deu certo ficou igual antes sem arredondar :lol:


Responder

Gostei + 0

05/07/2004

Janete

[quote:98be349970=´Undeclared Identifier´]DataModule.ClientDataSetMeuCampoCalculado.[color=red:98be349970]AsInteger[/color:98be349970] := Trunc(DataModule.ClientDataSet.Fields[0].AsFloat);


Acredita não deu nenhum erro, mas tb não deu certo ficou igual antes sem arredondar :lol:[/quote:98be349970]

Será q é por q o nº q dá não tem casas decimais, por q o numero fica assim 3656 e era pra ser 4, tentei fazer assim:

QryVasSD.AsInteger := Round(QryVasQtde.value);

e tb não deu


Responder

Gostei + 0

05/07/2004

Rômulo Barros

Isso aconteceu porque o valor a ser truncado foi [color=red:6af6b10c20]6756[/color:6af6b10c20], e naum [color=red:6af6b10c20]6.756[/color:6af6b10c20]

então, dá um Insert(´.´,Campo,2);


Responder

Gostei + 0

05/07/2004

Janete

[quote:58e85e42b3=´Undeclared Identifier´]Isso aconteceu porque o valor a ser truncado foi [color=red:58e85e42b3]6756[/color:58e85e42b3], e naum [color=red:58e85e42b3]6.756[/color:58e85e42b3]

então, dá um Insert(´.´,Campo,2);[/quote:58e85e42b3]

Desculpe mas onde exatamente tenho q colocar isso


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar