PDA

Ver la Versión Completa : Numeros con formato en sql


santiago14
08-08-2007, 18:59:43
buenas, tengo la siguiente tabla: (firebird 1.5)
nrofactura, fecha, nombre, domic, montototal

nrofactura es integer
montototal es double precision

en la consulta sql quiero mostrar a nrofactura con 8 digitos y a montototal con dos decimales, seria asi:

00000569 para el nrofactura
1568.00 para montototal

La verdad es que no encuentro la manera, supongo que se puede hacer en sql, espero que si. Saludos.

Santiago

Caral
08-08-2007, 19:12:55
Hola
Desconozco si se podra hacer e sql, pero usando Round, en la captura final tal vez te ayude.
Saludos

BlueSteel
08-08-2007, 21:13:42
Hola santiago14

y necesariamente debes darle el formato en la sentencia sql... en donde quieres utilizar los datos... si es un informe no te sale más conveniente darle el formato ahí... o en una pantalla.


lamentablemente todavia no he visto como hacer eso...

BlueSteel
08-08-2007, 21:19:57
tambien puedes usar el FormatFloat..

si Che_Monto es = 25365

FormatFloat('#,',Che_Monto) //-->25.365
FormatFloat('#,00',Che_Monto) //--> 25.365,00

BlueSteel
09-08-2007, 01:03:41
Hola de nuevo...

no se si Firebird lo puede hacer.. pero en SQL Server esta esta funcion


Select Campo1, Campo2, Cast (Campo_Total) As decimal (7,2)
From Tabla1


al menos con eso tienes para dar formato de decimal.. me falta el rellenar con zeros a la izquierda.. pero si lo encuentro te aviso

Cannabis
20-08-2007, 04:56:54
(query1.FieldByName('MontoTotal') AS TFloatField).DisplayFormat:= ',0.00'

Este código lo pones después de abrir el query (query1.open)

santiago14
21-08-2007, 21:24:13
Buen dia muchachos, hace un tiempito consulté sobre como lograr que la misma consulta sql me devuelva los números con formato. Bueno resulta que le encontré la vuelta y ahora se los comento, para el que lo necesite.

Si estamos en firebird 1.5 hay que habilitar las udf y allí tenemos, entre varias funciones, una llamada lpad.
La cosa queda asi:

Select lpad(nro,4,'0'), lpad (nro2,8,'0')...
From tabla
....

El resultado queda:

0002 00002687
0002 00003697
0001 00236984
........

Bastante bueno.
Bueno, gracias y hasta pronto.