SQL não consigo arredondar valores
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
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
Curtidas 0
Respostas
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
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:
[/quote:519e613e42]
Acho que seria interessante usar isto postado pelo colega, mas talvez usando a funcção ´Round()´
DataModule.ClientDataSetMeuCampoCalculado.AsVariant := Trunc(DataModule.ClientDataSet.Fields[0].AsFloat);
Acho que seria interessante usar isto postado pelo colega, mas talvez usando a funcção ´Round()´
GOSTEI 0
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:
[/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´
DataModule.ClientDataSetMeuCampoCalculado.AsVariant := Trunc(DataModule.ClientDataSet.Fields[0].AsFloat);
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
05/07/2004
DataModule.ClientDataSetMeuCampoCalculado.[color=red:f01e8c7b50]AsInteger[/color:f01e8c7b50] := Trunc(DataModule.ClientDataSet.Fields[0].AsFloat);
GOSTEI 0
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:
Acredita não deu nenhum erro, mas tb não deu certo ficou igual antes sem arredondar :lol:
GOSTEI 0
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
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);
então, dá um Insert(´.´,Campo,2);
GOSTEI 0
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
então, dá um Insert(´.´,Campo,2);[/quote:58e85e42b3]
Desculpe mas onde exatamente tenho q colocar isso
GOSTEI 0