Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-12-2010
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
sumar columna sql

Buenas,

ya estuve dando vueltas por estos post referente al tema que nos ocupa, pero no hay forma de que funcione.

Algunos da este tipo de solución:

Código Delphi [-]
 query1.SQL.Text:='select sum(importe) as suma from lineasventa';
   query1.ExecSQL;
  label5.caption:=query1.fieldbyname('suma').asstring;

Donde importe es un campo de la tabla lineasventa, pero suma es el resultado de dicha suma por lo que no pertenece a la tabla, y es ahi, al ejecutarlo, donde me da error diciendome que no pertenece a la tabla.

Lo que pretendo es lo siguente:

Sumar la columna completa de importe y que se vea reflejada en un label.
El ejemplo de otro post haciendo referencia a las notas de estudiante no sirvio de mucho puesto que solo quiere sumar de la misma linea.

Un saludo y gracias
Responder Con Cita
  #2  
Antiguo 27-12-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Cita:
Empezado por anubis Ver Mensaje
Buenas,
Código Delphi [-]
 query1.SQL.Text:='select sum(importe) as suma from lineasventa';
   query1.Open;
  label5.caption:=query1.fieldbyname('suma').asstring;




Un saludo y gracias

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 27-12-2010
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias por contestar, me sirve de mucho.

No se si le faltara algo a:

Código Delphi [-]
query1.SQL.Text:='select sum(importe) as suma from lineasventa';

Porque en ejecucion al llegar a esa linea me dice que el campo 'HORA' no se encuentra.
Efectivamente en la tabla tengo un campo hora, además de otros, lo que no entiendo es por que dice que no lo encuentra.
Responder Con Cita
  #4  
Antiguo 27-12-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Cita:
Empezado por anubis Ver Mensaje
Gracias por contestar, me sirve de mucho.
Código Delphi [-]
query1.SQL.Text:='select sum(importe) as suma from lineasventa';
Probablemente tengas campos persistentes en el Query.

Primero haz doble clic en el Tquery y en la ventana del editor de campos si aparece algo bórralo.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 27-12-2010
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias de nuevo,

La verdad no tengo ningun campo ahi donde me dices, ya revise todo lo demas y tampoco hay nada visible.

Lo tenia relacionado cno un dbgrid pero tambien lo quite a ver, pero me sigue dando el msimo error.
Responder Con Cita
  #6  
Antiguo 27-12-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Lo mejor es que elimines el Tquery y pongas uno nuevo y comiences desde cero porque la operación es bien sencilla y te tiene que funcionar.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 28-12-2010
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
gracias funciono bien, pero tengo un pequeño problema
a colacion de eso.

Haciendolo asi me suma todo que esl o que queria, pero si despues hago un filtro con fechas, en el dbgrid me sale lo que busco, el problema me surge cuando quiero que me sume solo lo que me sale por las fechas pero me da error, me dice que el codigo(es otro campo) no se encuentra.
Responder Con Cita
  #8  
Antiguo 28-12-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código Delphi [-]
query1.SQL.Text:='select sum(importe) as suma from lineasventa And Fecha Between :i And :f';;
Query1.ParamByName('i').AsDate:=dFechaINi;
Query1.ParamByName('f').AsDate:=dFechaFin;
Query1.Open;

En donde dFechaIni y dFechaFin serían dos variables de tipo fecha conteniendo las fechas inicial y final respectivamente.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #9  
Antiguo 29-12-2010
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
gracias de nuevo.

Bien como me he debido de liar yo solo, creo y, a pesar de hacer funcionar el programa a nivel dbgrid con filtro, se me resiste el poder sumar en funcion de lo que me aparece en el dbgrid, pero no encuentra los campos.

No quiero pretender que sea un curso acelerado de sql , sino mas bien una pequeña orientacion sobre, me imagino, algo tan básico como esto.

Pongo las lineas donde hago lo que me dices:

En el formcreate tengo esto:

Código Delphi [-]
zconnection1.Database:='g:\leerdes\ventas.fdb';
  zconnection1.Connected:=true;
  qventas.SQL.Text:='select * from lineasventa';
   qventas.IndexFieldNames:='codigo';
  qventas.Active:=true;

Tengo un zconnection, un zquery(ventas) unido al zconnection, un datasource unido al query y un dbgrid unido al datasource.

En pantalla tengo un dbgrid con sus columnas respectivas, 2 introduccion de fechas y 2 de horas y un un checkbox.

Cuando arranco el programa me muestra todos los registros de la tabla.

si le meto las fechas y horas solo, el dbgrid me muestra los que cumplen el rango:

Código Delphi [-]
 if checkbox1.Checked=true then
  begin
  qventas.SQL.clear;
  qventas.Active:=False;
  qventas.Close;
qventas.Sql.Text:='SELECT * FROM lineasventa WHERE FECHA>=:FECHANAC1  AND FECHA<=:FECHANAC2 and hora>=:hora1 and hora<=:hora2';
qventas.ParamByName('FECHANAC1').AsDate:=dateedit1.Date;
qventas.ParamByName('FECHANAC2').AsDate:=dateedit2.Date;
qventas.ParamByName('hora1').Astime:=strtotime(maskedit1.Text);
qventas.ParamByName('hora2').Astime:=strtotime(maskedit2.text);
qventas.open;
qventas.Filtered:=true;
dateedit1.Enabled:=false;
dateedit2.Enabled:=false;
maskedit1.Enabled:=false;
maskedit2.enabled:=false;
 qventas.SQL.clear;
  qventas.close;
qventas.SQL.Text:='select sum(importe) as sumaa from lineasventa And FECHA  between :FECHANAC1  AND :FECHANAC2 and hora between :hora1 and :hora2';
qventas.ParamByName('FECHANAC1').AsDate:=dateedit1.Date
qventas.ParamByName('FECHANAC2').AsDate:=dateedit2.Date;
qventas.ParamByName('hora1').Astime:=strtotime(maskedit1.Text);
qventas.ParamByName('hora2').Astime:=strtotime(maskedit2.text);
qventas.Open;
end
  else
  begin
    qventas.Active:=False;
   qventas.SQL.clear;
   qventas.sql.text:='select * from lineasventa';
  qventas.Active:=true;
  dateedit1.Enabled:=true;
dateedit2.Enabled:=true;
maskedit1.Enabled:=true;
maskedit2.enabled:=true;
//calculos;
  end;
  end;

Al ejecutar el programa me da error en esta linea:
Código Delphi [-]
qventas.SQL.Text:='select sum(importe) as sumaa from lineasventa And  FECHA  between :FECHANAC1  AND :FECHANAC2 and hora between :hora1 and  :hora2'
donde pone :hora1 y etc, me salen interrogantes ademas dice invalid token.

Si no pongo el tema de la suma no hay problema, me aplica el filtro.

Que estoy haciendo mal?.

gracias nuevamente.

pd: por cierto marcoszorrilla, tambien soy de cantabria, de santander mas concretamente, pero estoy fuera del pais hace ya 4 años y si, tengo morrilla snif, snif snif.
Responder Con Cita
Respuesta



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
sumar columna Memo6015 OOP 11 27-01-2011 02:06:33
sumar la columna de un dbgrid pharaonhx Varios 3 12-06-2008 15:27:27
Sumar Columna en StringGrig carlosh2006 Varios 2 28-08-2007 03:23:53
sumar una columna DBGrid cancerbero Conexión con bases de datos 5 11-08-2006 18:49:37
Sumar columna de un dbgrid Choclito Varios 0 24-07-2006 07:47:08


La franja horaria es GMT +2. Ahora son las 08:10:38.


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