Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-09-2006
leodelca23 leodelca23 is offline
Miembro
 
Registrado: jul 2006
Posts: 91
Poder: 18
leodelca23 Va por buen camino
Sumar Columnas

Hola a todos, Tengo un problema tengo una tabla Código SQL [-]CREATE TABLE "TELAS" ( "CLIENTE" VARCHAR(30) NOT NULL, "PO" VARCHAR(20) NOT NULL, "FECHA_EMISION" DATE NOT NULL, "DESCRIPCION1" VARCHAR(55) NOT NULL, "DESCRIPCION2" VARCHAR(55), "CANTIDADES_PEDIDAS" INTEGER NOT NULL, "CANTIDADES_HECHAS" INTEGER NOT NULL, "FECHA_PROMETIDA" DATE NOT NULL );

a esa le agrege un campo un campo total tipo calculated en delphi que me obtiene la diferencia entre cantidades pedidas y cantidades hechas y funciona bien.

Cantidades_faltantes = Cantidades_Pedidas - Cantidades_Hechas;

Bueno hago consultas a traves de un query y quiero que este query me muestre la sumatoria en un dbedit o un edit de las cantidades faltantes

lei por ahi que se utiliza algo asi
Código SQL [-]
Select *  sum(Cantidades_faltantes)
from Telas

No se como hago para asignarle la sumatoria a total o se puede poner directamente en el dbedit
Gracias a todos

Saludos
Responder Con Cita
  #2  
Antiguo 25-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Es muy simple el dbedit enlazalo al datasorce que a su vez se enlaza al query y ya, veras este dato en el dbedit.
Saludos
Responder Con Cita
  #3  
Antiguo 25-09-2006
leodelca23 leodelca23 is offline
Miembro
 
Registrado: jul 2006
Posts: 91
Poder: 18
leodelca23 Va por buen camino
si pero como hago para hacer la suma y todo eso y al dbedit le asigno el campo total ??
Responder Con Cita
  #4  
Antiguo 25-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Creo que asi:
Código SQL [-]
Select *  sum(Cantidades_faltantes) as Total
from Telas
Si es lo que me preguntas, no entiendo bien lo que quieres hacer
Saludos
Responder Con Cita
  #5  
Antiguo 25-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Perdona creo que es asi:
Código SQL [-]
Select sum(Cantidades_faltantes) as Total
from Telas
Sin el asterisco
Saludos
Responder Con Cita
  #6  
Antiguo 25-09-2006
leodelca23 leodelca23 is offline
Miembro
 
Registrado: jul 2006
Posts: 91
Poder: 18
leodelca23 Va por buen camino
mira no me funciona

Mira caral ahi te pongo mas datos a ver si te ayuda:

tengo un query para hacer la consulta dentro del query tengo
Código SQL [-]
SELECT Telas.*, Descripcion.*
FROM Telas INNER JOIN Descripcion
ON Telas.Descripcion1 = Descripcion.Descripcion;
esta es la tabla telas

Código SQL [-]
CREATE TABLE "TELAS" 
(
  "CLIENTE"    VARCHAR(30) NOT NULL,
  "PO"    VARCHAR(20) NOT NULL,
  "FECHA_EMISION"    DATE NOT NULL,
  "DESCRIPCION1"    VARCHAR(55) NOT NULL,
  "DESCRIPCION2"    VARCHAR(55),
  "CANTIDADES_PEDIDAS"    INTEGER NOT NULL,
  "CANTIDADES_HECHAS"    INTEGER NOT NULL,
  "FECHA_PROMETIDA"    DATE NOT NULL
);
tabla descrpicion
Código SQL [-]
CREATE TABLE "DESCRIPCION" 
(
  "DESCRIPCION"    VARCHAR(50),
  "ESTILO"    VARCHAR(25),
  "COLOR1"    VARCHAR(25),
  "COLOR2"    VARCHAR(25),
  "COLOR3"    VARCHAR(25),
  "COLOR4"    VARCHAR(25),
  "COLOR5"    VARCHAR(25),
  "FOLDLINE"    VARCHAR(25)
);

Bueno la cosa es asi como no cree el dato de Cantidades_Faltantes lo agrege en el query el campo tipo calculate y en el evento oncalcfields hice que me calculara lso datos y lo hace perfectamente.
Código SQL [-]
With DataSet do
  begin
   Fieldbyname('Cantidades_Faltantes').Asinteger:=FieldByName
          ('Cantidades_Pedidas').Asinteger - FieldByName('Cantidades_Hechas').Asinteger;
  end;

Lo que yo quiero hacer que me de la sumatoria de las cantidades_faltantes que la ponga en el dbedit. No se si asi quedo mas claro sino me preguntas y te pongo mas info creo que eso es suficiente.
Responder Con Cita
  #7  
Antiguo 25-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Le pides peras al olmo: Esto se llama de aprendiz a aprendiz, haber que sale:
Código SQL [-]
With DataSet do
  begin
   Fieldbyname('Cantidades_Faltantes').Asinteger:=FieldByName
          ('Cantidades_Pedidas').Asinteger - FieldByName('Cantidades_Hechas').Asinteger;
DBEdit1.Text:= FieldByName('Cantidades_Hechas').Asinteger;
  end;
o
Código SQL [-]
With DataSet do
  begin
   Fieldbyname('Cantidades_Faltantes').Asinteger:=FieldByName
          ('Cantidades_Pedidas').Asinteger - FieldByName('Cantidades_Hechas').Asinteger;
Edit1.Text:= FieldByName('Cantidades_Hechas').Asinteger;
  end;
Asi te pondra en ese evento el valor del dato en el dbedit o en el edit.
Veamos y me cuentas
saludos
Responder Con Cita
  #8  
Antiguo 25-09-2006
leodelca23 leodelca23 is offline
Miembro
 
Registrado: jul 2006
Posts: 91
Poder: 18
leodelca23 Va por buen camino
mira pero lo que quiero poner es las sumatoria de cantidades_faltantes . y con lo que me diste vos si lo modifico asi me muestra la ultima cantidad_hechas
Código SQL [-]
With DataSet do
  begin
   Fieldbyname('Cantidades_Faltantes').Asinteger:=FieldByName
          ('Cantidades_Pedidas').Asinteger - FieldByName('Cantidades_Hechas').Asinteger;
   DBEdit1.Text:= FieldByName('Cantidades_Hechas').Asstring;
  end;

end;
pero como te digo quiero la suma de eso gracias,
Saludos
Responder Con Cita
  #9  
Antiguo 25-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Bueno quiere decir que te da esa:
Bueno pon la otra y ya:
Código SQL [-]
With DataSet do
  begin
   Fieldbyname('Cantidades_Faltantes').Asinteger:=FieldByName
          ('Cantidades_Pedidas').Asinteger - FieldByName('Cantidades_Hechas').Asinteger;
   Edit1.Text:= Fieldbyname('Cantidades_Faltantes').Asinteger;
  end;
La verdad el dato yo lo pondria en un edit no en un dbedit ya que confunde
Saludos
Responder Con Cita
  #10  
Antiguo 25-09-2006
leodelca23 leodelca23 is offline
Miembro
 
Registrado: jul 2006
Posts: 91
Poder: 18
leodelca23 Va por buen camino
Smile

mira si pero de esa forma me muestra nada mas el ultimo dato no la sumatoria de todos, he ledio por ahi de lo de sum pero no me funciona.
Responder Con Cita
  #11  
Antiguo 25-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Perdona que motor de base de datos usas?
Responder Con Cita
  #12  
Antiguo 25-09-2006
leodelca23 leodelca23 is offline
Miembro
 
Registrado: jul 2006
Posts: 91
Poder: 18
leodelca23 Va por buen camino
Uso interbase
Responder Con Cita
  #13  
Antiguo 25-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Pueba:
Código SQL [-]
AdoQuery1.Close;
AdoQuery1.Clear;
AdoQuery.Sql.Add('Select sum(Cantidades_Pedidas - Cantidades_Hechas) as Cantidades_faltantes');
AdoQuery.Sql.Add('from Telas');
AdoQuery1.Open;
Edit.text:= (Cantidades_Faltantes).Asinteger;
Esto hace lo mismo que el evento calculate solo que sql y lo pones en donde quieras hasta en un boton o en oncreate, pruebalo
Saludos
Responder Con Cita
  #14  
Antiguo 25-09-2006
leodelca23 leodelca23 is offline
Miembro
 
Registrado: jul 2006
Posts: 91
Poder: 18
leodelca23 Va por buen camino
mira no se puede porque de esa forma pierdo el join con la tabla descripcion , gracias saludos
Responder Con Cita
  #15  
Antiguo 25-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
o Esto:
Código SQL [-]
SELECT ALL sum(Cantidades_Pedidas - Cantidades_Hechas) as Cantidades_faltantes 
FROM Telas INNER JOIN Descripcion
ON Telas.Descripcion1 = Descripcion.Descripcion;
o
Código SQL [-]
SELECT * sum(Cantidades_Pedidas - Cantidades_Hechas) as Cantidades_faltantes 
FROM Telas INNER JOIN Descripcion
ON Telas.Descripcion1 = Descripcion.Descripcion;
Prueba
Saludos
Responder Con Cita
  #16  
Antiguo 25-09-2006
leodelca23 leodelca23 is offline
Miembro
 
Registrado: jul 2006
Posts: 91
Poder: 18
leodelca23 Va por buen camino
mira lo probe y no funciono que hago?
Responder Con Cita
  #17  
Antiguo 25-09-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Esto es practicamente lo mismo:
En el Query1 que tienes pon:
Código SQL [-]
SELECT Telas.* sum(Cantidades_Pedidas - Cantidades_Hechas) as Cantidades_faltantes, Descripcion.*
FROM Telas INNER JOIN Descripcion
ON Telas.Descripcion1 = Descripcion.Descripcion;
Con un edit y un boton, pon en el evento on click del boton:
Código Delphi [-]
Edit1.Text := Query1.FieldByName('Cantidades_faltantes').AsInteger;
Asi funciona
Saludos
Responder Con Cita
  #18  
Antiguo 25-09-2006
leodelca23 leodelca23 is offline
Miembro
 
Registrado: jul 2006
Posts: 91
Poder: 18
leodelca23 Va por buen camino
Cool mira lo solucione

Cree otro query y puse
Código SQL [-]
IBQ.Close;
IBQ.Sql.Clear;
IBQ.SQL.Add('SELECT sum(Cantidades_Pedidas - Cantidades_Hechas) as total FROM Telas INNER JOIN Descripcion ON Telas.Descripcion1 = Descripcion.Descripcion where Telas.descripcion1 ='+quotedstr(Edit2.text));
IBQ.Open;
dbedit1.Visible:=true;

muchas gracias por toda la ayuda de todos.
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 Columnas de Un DBGRIB cancerbero Conexión con bases de datos 7 01-08-2006 13:33:27
sumar columnas en un dbgrid Choclito Varios 2 04-06-2006 11:55:39
sumar columnas en stringgrid Choclito Varios 1 11-05-2006 15:26:59
Sumar columnas en Rave Reports martita Impresión 0 18-11-2005 17:14:12
Sumar columnas de un DBGRID magm2000 Varios 3 27-09-2003 00:40:06


La franja horaria es GMT +2. Ahora son las 13:36:40.


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