Autor Tema: Diseñar consulta con formatos en sql firebird  (Leído 3243 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Liudex

  • Bytes
  • *
  • Mensajes: 27
  • Reputación: +1/-0
    • Ver Perfil
Diseñar consulta con formatos en sql firebird
« en: Septiembre 30, 2013, 01:36:51 pm »
Buenos dias foreros, tengo un problema en el diseño de una consulta en firebird a continuacion presento el codigo.

Código: [Seleccionar]
SELECT  ESPECIFICACIONES.DESCRIPCION,
DETALLEPRESUPUESTO.Item,Especificaciones.Unidad,
DETALLEPRESUPUESTO.Cantpresp, Format(precio,'##,##0.00')as Cost,
Format((Cantpresp * Precio),'##,##0.00') AS SubTotal,
Format((100 * CostoUnd)/ (100 - putil),'##,##0.00') AS Pv,
Putil,Format((Pv - CostoUnd)*(Cantpresp),'##,##0.00') AS Gan,
Format((Pv * Cantpresp),'##,##0.00') AS Total
FROM DETALLEPRESUPUESTO
INNER JOIN ESPECIFICACIONES ON (DETALLEPRESUPUESTO.IDITEM = ESPECIFICACIONES.IDITEM)

Bueno resulta que esta consulta le hecho en mi base de datos access pero cuando trato de emular lo mismo en firebird no puedo, por las siguientes razones.
No existe la función format en firebird, podríamos obviar lo del format y eliminarlo del sql y darle el formato en la interfaz vb 6.0.

Lo segundo es que una vez que se calcula el PV no puedo reutilizar este valor para realizar posteriores calculos, como el caso del valor GAN.

de antemano agradezco sus recomendaciones.

Si Se puede Imaginar, Se Puede Programar........

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Diseñar consulta con formatos en sql firebird
« Respuesta #1 en: Septiembre 30, 2013, 02:47:56 pm »
1.- Format no existe en el standard SQL. En todo caso en Firebird con seguridad no existe. Usa Cast o Convert para formatear, o hazlo en el control.
2.- Firebird es sensible a la mayúsculas y minúsculas, ten cuidado con eso en el nombre de tus tablas.
3.- Tienes que cambiar PV por toda la formula que da el resultado de PV. Ciertamente el SQL se hace mas grande, ahora, si armas tus cadenas sql en varias variables alli se hace mas legible y pequeño el codigo.

Saludos
Me encuentras en YAcosta.com

Liudex

  • Bytes
  • *
  • Mensajes: 27
  • Reputación: +1/-0
    • Ver Perfil
Re:Diseñar consulta con formatos en sql firebird
« Respuesta #2 en: Octubre 01, 2013, 09:43:50 am »
Muchas gracias al amigo Acosta por tu siempre oportuna respuesta.


1.- Format no existe en el standard SQL. En todo caso en Firebird con seguridad no existe. Usa Cast o Convert para formatear, (He tratado de hacerlo con el cast pero no me  funciona, si tienes un ejemplo y no es mucho abuso......)
 o hazlo en el control.  (si en verdad que es mas fácil y factible, pero tenia la duda como hacerlo en sql)

2.- Firebird es sensible a la mayúsculas y minúsculas, ten cuidado con eso en el nombre de tus tablas.  (lo tendre en cuenta...)

3.- Tienes que cambiar PV por toda la formula que da el resultado de PV. Ciertamente el SQL se hace mas grande, ahora, si armas tus cadenas sql en varias variables alli se hace mas legible y pequeño el codigo.
ni idea de como hacer sql en varias variables sencillas...

Saludos

En verdad que vas a tener que publicar un tutorial de como utilizar el firebird... claro si te es posible..
« última modificación: Octubre 01, 2013, 09:53:41 am por Liudex »
Si Se puede Imaginar, Se Puede Programar........

Liudex

  • Bytes
  • *
  • Mensajes: 27
  • Reputación: +1/-0
    • Ver Perfil
Re:Diseñar consulta con formatos en sql firebird
« Respuesta #3 en: Octubre 01, 2013, 10:08:10 am »
Lo resolví haciendo todos los cálculos posteriores al calculo de PV en el control (Mshflexgrid) (desde un principio sabia que se podia hacer) pero aun me queda la duda de como dar formato usando el cast o convert y como armar cadenas sql en varias variables para hacer el código mas legible y pequeño.
Si Se puede Imaginar, Se Puede Programar........

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Diseñar consulta con formatos en sql firebird
« Respuesta #4 en: Octubre 15, 2013, 11:34:33 pm »
Hola Liudex que tal. Estoy un poco confundido porque pense que habia un post nuevo en este hilo para hoy 15-10 pero veo que no y este ultimo coment tuyo se me paso. Por si aun no encuentras el tema deo formateo la historia va asi.

Si quieres mostrar el numero 12,500.00 desde el sql harias esto:

Código: (VB) [Seleccionar]
SELECT Cast(TuCampo AS decimal(7, 2)) AS Monto
FROM TuTabla

Y ya sabes, si lo quieres con simbolo por ejemplo S/. harias:
Código: (VB) [Seleccionar]
SELECT 'S/.' ││ Cast(TuCampo AS decimal(7, 2)) AS Monto
FROM TuTabla

Recuerda que entre las barras no debe haber espacio. OJO: El codigo aparece en verde como comentado despues de la primera comilla simple y eso es porque el editor del foro lo toma asi para toda la linea mas no es asi en el IDE de vb6.

Si quieres presentar el numero 23 como 000023 haras esto:
Código: (VB) [Seleccionar]
SELECT LPAD(CAST(TuCampo AS VARCHAR(6)), 6, '0') From TuTabla
Pero recuerda que si usas estos conversores puedes perder cierta eficiencia en la consulta porque en el query ya no se ejecutaran los indices y puede ponerse lenta la consulta dependiendo de la cantidad de registros a traer.


Disculpa la demora.
« última modificación: Octubre 17, 2013, 12:12:16 pm por YAcosta »
Me encuentras en YAcosta.com