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 11-02-2005
Yanet Yanet is offline
Registrado
 
Registrado: feb 2005
Posts: 1
Poder: 0
Yanet Va por buen camino
Consulta de rango de fechas con sql

He entrado en varias ocasiones como visitante a este club, y hoy por fin me he unido como participante, quiero agradecer de antemano cualquier respuesta.

Mi problema es el siguiente: necesito hacer una consulta a una tabla que se llama ventas (la tabla es de Acces), lo que necesito saber es cuanto ha comprado un "distribuidor" x en un periodo de tiempo dado; por ejemplo : cuanto ha comprado el distribuidor con clave 1, del 1 de enero del 2005 al 15 de enero del 2005....

he leido varios problemas similares pero he probado las soluciones y no me han funcionado ...

el codigo que tengo es el siguiente:

datamodule2.Query1.Close;
with datamodule2.Query1.SQL do
begin
clear;
add('select(sum(cantidad_vta))');
add('from Venta where clave_dis='''+stringgrid1.Cells[0,f]+'''and fecha_vta>='''+'01012005'+''' and fecha_vta<='''+'16012005'+''');
datamodule2.Query1.Open;
end;

por ultimo nada mas : estoy trbajando con access 2003 y delphi 7
grax
Responder Con Cita
  #2  
Antiguo 12-02-2005
Carlosguiland Carlosguiland is offline
Miembro
 
Registrado: abr 2004
Posts: 35
Poder: 0
Carlosguiland Va por buen camino
Hola.
datamodule2.Query1.Close;
with datamodule2.Query1.SQL do
begin
clear;
add('select(sum(cantidad_vta))');
add('from Venta where clave_dis='+stringgrid1.Cells[0,f]+'and fecha_vta between :fecha1 and :fecha2');
datamodule2.Query1.Params[0].Value := fecha1; // esta es de tipo Date
datamodule2.Query1.Params[1].Value := fecha2; // esta es de tipo Date
datamodule2.Query1.Open;
end
////////// es mejor utilizar parametros para consultas de fechas,
Saludos....
Responder Con Cita
  #3  
Antiguo 12-02-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Muy posiblemente el formato en que pones las fechas no es el adecuado para Access. Normalmente los motores usan formatos con separadores entre el día, mes y año y entre unos y otros cambia el orden en que se colocan.

Desconozco cuál es el adecuado para Access pero por lo regular este problema desaparece cuando usas consultas parametrizadas. Pon tu consulta así:

Código SQL [-]
select sum(cantidad_vta) from Venta
where
  clave_dis = :clave_dis and
  fecha_venta >= :fecha_inicial and
  fecha_venta <= :fecha_final

Antes de abrir la consulta sustituyes los parámetros:

Código Delphi [-]
Query1.ParamByName('clave_dis').AsInteger := StringGrid1.Cells[0,f];
Query1.ParamByName('fecha_inicial').AsDate := FechaInicial;
Query1.ParamByName('fecha_final').AsDate := FechaFinal;

donde FechaInicial y FechaFinal son variables de tipo TDate con los valores adecuados.

La componente Query será la encargada de traducir las fechas al formato correcto.

Por cierto, en la consulta que tienes me parece que tampoco van los paréntesis que rodean a sum(cantidad_vta) ylos rangos de fechas los puedes especificar con BETWEEN:

Código SQL [-]
select sum(cantidad_vta) from Venta
where
  clave_dis = :clave_dis and
  fecha_venta between :fecha_inicial and :fecha_final

EDITO:

Bueno, veo que se me han adelantado y sin tanto rollo.

// Saludos
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


La franja horaria es GMT +2. Ahora son las 13:07:59.


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