Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Dos consultas en una (https://www.clubdelphi.com/foros/showthread.php?t=24199)

Petolansa 11-08-2005 15:13:08

Dos consultas en una
 
Buenas gente...
Tengo esto...
[sql]
Adoquery1.SQL.Clear;
Adoquery1.SQL.Add('Select facturaNro');
Adoquery1.SQL.Add('from ventas where FechaFact between :param0 and :param1 and TipCom like :nombre' );
Adoquery1.Parameters[0].DataType:=FtDateTime;
Adoquery1.Parameters[0].Value:=Dtpdesde.Date;
Adoquery1.Parameters[1].DataType:=FtDatetime;
Adoquery1.Parameters[1].Value:=Dtphasta.Date;
Adoquery1.Parameters.ParamByName('nombre').Value :=trim(edit1.Text);
Adoquery1.Open;


Esto funciona bien y me lo devuelve en un dbgrid, lo que quiero es agregarle
es la sgte. consulta,que me devuelve el importe total de los campos devueltos en la consulta anterior

Código SQL [-]
Consulta 2:
Select SUM(Importe) as TOTAL

Lo que quiero es que me muestre todos los campos de la consulta 1 y que al final en un campo me devuelva la suma con la consulta 2

Gracias por el tiempo

Casimiro Notevi 11-08-2005 16:24:37

¿Te refieres a algo así como esto?:
Código SQL [-]
 Adoquery1.SQL.Add( 'Select facturaNro, sum(importe) from ventas where FechaFact between :param0 and :param1 and TipCom like :nombre'  group by facturaNro' );

Petolansa 11-08-2005 17:57:19

No, yo me referia que me sume todos los valores de la columna importe y me devuelva el total general en 1 solo campo...

o sea si aparecen 10 campos, que me los sume y me de un solo campo, una celda


Gracias

hector.roma 12-08-2005 11:56:16

Union
 
Código Delphi [-]
 Adoquery1.SQL.Add('Select facturaNro');
 Adoquery1.SQL.Add('from ventas where FechaFact between :Param0 and :Param1 and TipCom like :nombre' );
  Adoquery1.SQL.Add('UNION SELECT "Total: " + CAST(SUM(Importe) AS VARCHAR)');
 Adoquery1.SQL.Add('from ventas where FechaFact between :Param0 and :Param1 and TipCom like :nombre' );

Y tendras en tu consulta una linea más del estilo:
...
Total: 123
...

Ten en cuenta que si quieres devolver un campo sólo a mayores tienes que hacerlo de esta forma. Aunque si quieres tenerlo como un campo (Total) tienes que hacer lo que te dijo Casimiro. Luego en el grid ocultas la columna total, y el valor total lo muestras (recuperándolo del grid) en un texto a parte fuera.


vtdeleon 13-08-2005 01:09:32

Saludoos

No aportare mucho pero...
Código SQL [-]
Select facturaNro, (select sum(importe) from ventas where FechaFact between :param0 and :param1 and TipCom like :nombre)
from ventas where FechaFact between :param0 and :param1 and TipCom like :nombre

Petolansa 16-08-2005 07:39:48

Muchas Gracias Gente, muy agradecido


La franja horaria es GMT +2. Ahora son las 23:54:29.

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