SQL não consigo arredondar valores

Delphi

05/07/2004

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

Curtidas 0

Respostas

Rômulo Barros

Rômulo Barros

05/07/2004

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);



GOSTEI 0
Dataclass

Dataclass

05/07/2004

[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()´


GOSTEI 0
Janete

Janete

05/07/2004

[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´


GOSTEI 0
Rômulo Barros

Rômulo Barros

05/07/2004

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


GOSTEI 0
Janete

Janete

05/07/2004

[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:


GOSTEI 0
Janete

Janete

05/07/2004

[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


GOSTEI 0
Rômulo Barros

Rômulo Barros

05/07/2004

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);


GOSTEI 0
Janete

Janete

05/07/2004

[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


GOSTEI 0
POSTAR