Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-08-2014
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
sumar campos calculados

Buenas de nuevo,

Estaba buscando en san google y en los foros de clubdelphi pero no he encontrado algo que me sirva.

Los campos calculados ya los estoy usando y no hay problema, la cuestion es que tengo un dbgrid con los campos de dos tablas, de ahi genero los campos calculados en el mismo dbgridy no hay problema.
El problema surge cuando quiero sumar un campo calculado que no es el resultado de hacer (campo1+campo2) sino que es un tercer campo que proviene de uno calculado.

Es decir,

tengo en una tabla el campo precio y el campo cantidad, en el campo calculado tengo total
de otra tabla tengo el campo iva y el campo calculado es totaliva (total*iva)/100
Ese ultimo campo es el que quiero hacer la suma de ese totaliva que no me dice que no existe a pesar de que lo he puesto en el query como calculado.

En el dbgrid si me aparece por registro el calculo sin problema, solo que hacer

Código SQL [-]
select * sum(precio*cantidad) as total, sum(totaliva) as totaliva from compras where id_folio=15

Entiendo que al no ser un resultado proveniente de los campos de la tabla no lo encuentre, pero quiza haya otra forma de sumar esos resultados sin tener que hacer un recorrido de la tabla y almacenarlos en una variable.

perdon sino me explique bien y gracias.
Responder Con Cita
  #2  
Antiguo 25-08-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola anubis.

Con campos calculados, ¿ Te referis a los creados con el Fields editor del TDataSet ? : Click derecho -> Fields Editor -> New Field -> ...

¿ O a las columnas calculadas ? vg:
Código SQL [-]
CREATE TABLE TABLA(
  ID  INTEGER,
  MONTO NUMERIC(15,3),
  MONTO_IVA COMPUTED BY(MONTO * 0.21) /* columna calculada */
...


Lo que puedo ver en en la consulta SQL, son dos expresiones de función (SUM) y los respectivos alias que las refieren. Si se trata de ellas, no podes utilizarlas mediante su alias ya que esas columnas no tienen existencia fuera de la consulta, tenes que invocar la repetición del cálculo, por ejemplo:
Código SQL [-]
SELECT SUM(T1.CAMPO_1 * T1.CAMPO_2) AS TOTAL,
       SUM(T1.CAMPO_1 * T1.CAMPO_2 + T2.CAMPO_X * T2.CAMPO_Y) AS SUMATOTAL
    /* SUM(TOTAL                   + T2.CAMPO_X * T2.CAMPO_Y) AS SUMATOTAL  ¡ error ! */
FROM TABLA1 T1 INNER JOIN TABLA2 T2 ON T1.ID = T2.ID
WHERE T1.ID = :UN_ID
Espero que se trate de esto último, pero dudo de haber interpretado tu consulta correctamente.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 28-08-2014
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias por responder,

Mira, lo que hice fue añadir dos campos calculados, uno de ellos recoge un campo iva de otra tabla, en el oncalcfields le puse una condicion que si el iva era >0 me hiciera el calculo de iva/1.16 y si es cero no hiciera nada porque da error.
esa columna era lo que queria hacer un sum.

Quiza no es la mejor forma de resolver pero funciona, lo que no pude era hacer un sum, pero lo resolvi recorriendo la tabla y acumulandolo en una variable.
Pero por lo que veo, para hacer un sum de este tipo con condiciones esta complicado hacerlo directamente sobre la tabla, aunque estaba pensando si con un procedure o function en delphi si se pueda.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TClienDataSet Problemas con Campos Blob y Campos Calculados LEVV Conexión con bases de datos 2 11-05-2012 02:25:43
Campos Calculados elias1312 Varios 2 08-04-2009 21:39:50
campos calculados ercrizeporta Conexión con bases de datos 7 11-06-2007 11:51:29
Campos Calculados Kaller Tablas planas 1 12-12-2006 01:11:13
Campos calculados Perenquen Tablas planas 1 12-07-2003 14:30:43


La franja horaria es GMT +2. Ahora son las 19:56:00.


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
Copyright 1996-2007 Club Delphi