Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Filtrar o Consultar por mes (https://www.clubdelphi.com/foros/showthread.php?t=36462)

maravert 12-10-2006 18:47:06

Filtrar o Consultar por mes
 
Que tal a todos, espero puedan ayudarme, os agradecería enorme.

Llevo ya varois días con esto y espero un empujón.

Trabajo con tablas Paradox yDelphi 7.

Una tabla se llama Ventas con (Clave, fecha, Saldo) y un campo Lookup llamado Nombre el cual esta relacionado con la Tabla Clientes (Id-Cliente, Nombre.. etc)

La tabla esta asociado a un Dbgrid.

Deseo filtrar o consultar la tabla mediante el mes actual, la verdad no me ha salido nada. Tambien si hago una consulta a la Tabla, en el Dbgrid no me aparece el nombre del cliente al ser una campo Lookup.

Espero puedan ayudarme en esto.

Es cuanto.

Alejandro

Lonidas 12-10-2006 19:31:44

Serviría un poco que pongas el código que estas ejecutando para el filtrado :)

poliburro 12-10-2006 20:13:57

Por cuestiones de rendimiento siempre será mejor hacer una consulta que un filtrado amigo mio.

en definitiva es mejor que hagas la consulta

maravert 13-10-2006 05:19:10

Gracias por sus consejos

Matiax 15-01-2013 22:28:45

trabajo en delphi 7 y la tabla esta hecha en paradox, mi pregunta es como puedo hacer una suma en el campo fecha, pero solo del mes q le indiq?. Soy muy nuevo en esto y me empece aventurar!

ecfisa 16-01-2013 16:08:35

Hola Matiax y bienvenido a Club Delphi :)

Como a todos los que se inician te invitamos a que leas nuestra [ guía de estilo ].

En relación a tu pregunta, no dejas muy en claro lo que deseas sumar pero te pongo un ejemplo, usando un TQuery, que suma los valores de una columna siempre que el valor mes del CAMPO_FECHA se corresponda con el mes solicitado:
Código Delphi [-]
  with Query do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT SUM(CAMPO_A_SUMAR) AS SUMA FROM TU_TABLA');
    SQL.Add('WHERE CAST(EXTRACT(MONTH FROM CAMPO_FECHA)AS INTEGER) = :PMES');
    ParamByName('PMES').AsInteger:= StrToInt(EditMes.Text); 
    Open;
    ShowMessage(FieldByName('SUMA').AsString);
  end;
EditMes es un TEdit que contendría un número de mes válido (1-12) y el resultado se obtiene del alias SUMA.


Por favor, cuando tengas una nueva pregunta no continues un hilo antiguo, abre uno nuevo.

Saludos y gracias por tu colaboración.

Matiax 16-01-2013 21:55:54

Muchisimas gracias por contestar, no tenia ni la menor idea q contestaste, como te digo soy super nuevo y sigo buscando y me di con tu respuesta, la voy a probar y si salen mas dudas las pondre, desde ya muchisimas gracias!

Matiax 16-01-2013 22:06:12

esto lo tengo q poner en un boton?, al query le tengo q poner algo en algun lado?, nunca use query, creo q funciona!

Matiax 16-01-2013 22:24:06

yo lo q quiero en relidad es: yo tengo una tabla q se llama CanGor y los campos son codigo, Nombres, Cantidad, Precio y Fecha, yo lo q quiero es poner en algun lado(como un combobox)desde y asta las fechas y poder sumar la cantidad * el Precio de un mes en particular(por ej: el 01/2013).y me devuelva un resultado: en edit o showmwssage o donde sea!. Eso es. Desde ya muchas gracias y espero lo hayas entendido!, saludos!

ecfisa 17-01-2013 03:24:07

Hola.

Perdón por la tardanza pero recién entro.
Cita:

Empezado por Matiax (Mensaje 453532)
esto lo tengo q poner en un boton?, al query le tengo q poner algo en algun lado?, nunca use query, creo q funciona!

Si, podes poner el código en el evento OnClick de un TButton.

Cita:

...
yo tengo una tabla q se llama CanGor y los campos son codigo, Nombres, Cantidad, Precio y Fecha... yo lo q quiero es poner en algun lado(como un combobox)...

y poder sumar la cantidad * el Precio de un mes en particular(por ej: el 01/2013).y me devuelva un resultado: en edit o showmwssage o donde sea!.
Un ejemplo con un ComboBox:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  with ComboBox1 do
  begin
    Clear;
    for i:= 1 to 12 do Items.Add(LongMonthNames[i]);
  end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  with Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT SUM(CANTIDAD*PRECIO) AS TOTAL FROM CANGOR');
    SQL.Add('WHERE CAST(EXTRACT(MONTH FROM FECHA) AS INTEGER) = :PMES');
    ParamByName('PMES').AsInteger:= ComboBox1.ItemIndex + 1;
    Open;
    ShowMessage(FieldByName('TOTAL').AsString);
  end;
end;
En este caso el valor se referencia por el alias TOTAL (o el nombre que prefieras darle).

Saludos.


La franja horaria es GMT +2. Ahora son las 00:05:14.

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