Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Una duda sobre Adsl (https://www.clubdelphi.com/foros/showthread.php?t=19881)

joanajj 30-03-2005 12:02:34

Una duda sobre Adsl
 
Buenos días tengo un par de preguntillas:

¿se puede hacer una consulta SQL, por ej. SUM sobre un campo calculado.?

Por ej. Adotable1 con varios campo, uno de ellos calculado( calcula precio x cantidad)

query1 con select campo1, sum(calculado) as totales etc.etc.

al hacer esto me dá un error(no recuerdo cual), pero si en vez del calculado pongo cualquier campo real no me dá error.

el problema es que he probado a hacer esto:

select campo1, sum(precio*cantidad) as totales etc.etc.
y me dá el resultado sin problemas, pero como no puedo redondear a 3 decimales, el resultado que me dá difiere en un decimal en algunos casos.

Es decir por ej. 12,54 * 3,56=44,6424
15,21 * 4,23=64,3383

en pocas palabras, lo que necesito es redondear a 3 decimales el resultado de las multiplicaciones anteriores para poder sumar con ese formato y que no me sobre el decimal.

es decir algo así(aunque me lo invento)

select campo1, sum(redondear(precio*cantidad),3) as totales etc.etc.

A ver si hay suerte, Muchas Gracias...

johncook 30-03-2005 13:40:54

Prueba con Round. Para mas info, consulta la ayuda.
Saludos.

joanajj 30-03-2005 13:50:58

Dentro de Sql creo que no admite el Round
 
Gracias por responder, pero el Round si nome equivoco no es aplicable a una sentencia SQL???

Saludos...

johncook 30-03-2005 14:42:34

No tengo idea q base de datos estas utilizando. Pero el ROUND si es aplicable a una sentencia SQL.
Transcribo ayuda de SQL Server.
ROUND - T-SQL
Devuelve una expresión numérica, redondeada a la longitud o precisión especificada.

Sintaxis

ROUND(expresiónNumérica, longitud[, función])

Argumentos

expresiónNumérica Es una expresión de la categoría de tipos de datos numérico exacto o numérico aproximado, excepto para el tipo de datos bit. longitud Es la precisión a la que se debe redondear expresiónNumérica. longitud debe ser del tipo tinyint, smallint o int. Cuando longitud es un número positivo, expresiónNumérica se redondea al número de posiciones decimales especificado en longitud. Cuando longitud es un número negativo, expresiónNumérica se redondea en el lado izquierdo del separador decimal, como se especifica en longitud. función Es el tipo de operación que se va a realizar. función debe ser del tipo tinyint, smallint o int. Cuando se omite función o tiene el valor 0 (predeterminado), se redondea expresiónNumérica. Cuando se especifica un valor distinto de 0, se trunca expresiónNumérica.

joanajj 30-03-2005 18:07:11

ado sobre base de datos access
 
Utilizo Ado y Base de datos access.

Adotable y Adoquery...

En cualquier caso esta noche probaré lo del round...

Gracias

joanajj 31-03-2005 10:52:27

Funcionaaa
 
Muchas gracias, el Round si que funciona en una sentencia SQL en Delphi

Ahora me dá el resultado correcto...


Muchas gracias

johncook 31-03-2005 13:35:54

De Nada.
Saludos.

marto 31-03-2005 14:08:47

¿¿y qué tiene que ver el adsl con todo esto?? :confused: :confused:


La franja horaria es GMT +2. Ahora son las 04:09:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi