Club Delphi  
    Paypal   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 07-05-2007
Avatar de carlosegs11
carlosegs11 carlosegs11 is offline
Miembro
 
Registrado: jul 2004
Posts: 41
Poder: 0
carlosegs11 Va por buen camino
Muchas gracias por tu pronta respuesta.

Tipo de base de datos: tabla.dbf
Componentes que utilizo: TAdsQuery

Codigo de la consulta:

sqlFactura.SQL.Clear;
sqlFactura.SQL.Add('SELECT numefact AS Factura, sum(valor) AS Valor,
fechinivig AS Inicio_Vigencia, fechfinvig AS Fin_Vigencia');
sqlFactura.SQL.Add('FROM factura');
sqlFactura.SQL.Add('GROUP BY cedula, numefact, fechinivig, fechfinvig,
compania, producto');
sqlFactura.SQL.Add('HAVING ((cedula = :sCedula) and (sum(valor) <> 0) and (compania = :sCompania) and (producto = :sProducto))');
sqlFactura.SQL.Add('ORDER BY cedula, fechinivig');
sqlFactura.ParamByName('sCedula').AsString := F_Recaudos.eCedula.Text;
sqlFactura.ParamByName('sCompania').AsString := F_Recaudos.cbxCompania.Text;
sqlFactura.ParamByName('sProducto').AsString := F_Recaudos.cbxProducto.Text;
sqlFactura.Open;

Carlos E.
Responder Con Cita
  #2  
Antiguo 07-05-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
La verdad sigo intrigado, para mi es una consulta sencilla a una tabla (factura), pidiendo que siga ciertos parametros.
Código Delphi [-]
sqlFactura.SQL.Clear;
sqlFactura.SQL.Text 'SELECT numefact AS Factura, sum(valor) AS Valor,'+
                   'fechinivig AS Inicio_Vigencia, fechfinvig AS Fin_Vigencia' +
                   'FROM factura' +
                   'GROUP BY cedula, numefact, fechinivig, fechfinvig,'+
                   'compania, producto' +                                             
                   'WHERE cedula = :sCedula and sum(valor) <> 0 and compania ='+     
                   ':sCompania and producto = :sProducto' +
                   'ORDER BY cedula, fechinivig' +
sqlFactura.ParamByName('sCedula').AsString := F_Recaudos.eCedula.Text;
sqlFactura.ParamByName('sCompania').AsString := F_Recaudos.cbxCompania.Text;
sqlFactura.ParamByName('sProducto').AsString := F_Recaudos.cbxProducto.Text;
sqlFactura.Open;
Perdona que la alla puesto asi, pero me resulta mas facil leerla, se hace un solo bloque.
La opcion HAVING en algunos casos me ha alentado consultas.
No se porque se te alenta esta sentencia, la verdad lo desconozco.
Saludos
Responder Con Cita
  #3  
Antiguo 07-05-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Perdon (trate de editarlo pero no pude, se borra lo bonito) creo que va asi:
Código Delphi [-]
sqlFactura.SQL.Clear;
sqlFactura.SQL.Text 'SELECT numefact AS Factura, sum(valor) AS Valor,'+
                   'fechinivig AS Inicio_Vigencia, fechfinvig AS Fin_Vigencia' +
                   'FROM factura' +
                   'WHERE cedula = :sCedula and sum(valor) <> 0 and compania ='+     
                   ':sCompania and producto = :sProducto' +
                   'GROUP BY cedula, numefact, fechinivig, fechfinvig,'+
                   'compania, producto' +                                             
                   'ORDER BY cedula, fechinivig' +
sqlFactura.ParamByName('sCedula').AsString := F_Recaudos.eCedula.Text;
sqlFactura.ParamByName('sCompania').AsString := F_Recaudos.cbxCompania.Text;
sqlFactura.ParamByName('sProducto').AsString := F_Recaudos.cbxProducto.Text;
sqlFactura.Open;
El where antes del group by.
En el caso del having si es correcta la posicion.
Saludos
Responder Con Cita
  #4  
Antiguo 07-05-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Me estoy haciendo viejo, cada vez veo menos:
Código Delphi [-]
sqlFactura.SQL.Clear;
sqlFactura.SQL.Text:= 'SELECT numefact AS Factura, sum(valor) AS Valor,'+
                   'fechinivig AS Inicio_Vigencia, fechfinvig AS Fin_Vigencia' +
                   'FROM factura' +
                   'WHERE cedula = :sCedula and sum(valor) <> 0 and compania ='+     
                   ':sCompania and producto = :sProducto' +
                   'GROUP BY cedula, numefact, fechinivig, fechfinvig,'+
                   'compania, producto' +                                             
                   'ORDER BY cedula, fechinivig' +
sqlFactura.ParamByName('sCedula').AsString := F_Recaudos.eCedula.Text;
sqlFactura.ParamByName('sCompania').AsString := F_Recaudos.cbxCompania.Text;
sqlFactura.ParamByName('sProducto').AsString := F_Recaudos.cbxProducto.Text;
sqlFactura.Open;
Saludos
Responder Con Cita
  #5  
Antiguo 08-05-2007
Avatar de carlosegs11
carlosegs11 carlosegs11 is offline
Miembro
 
Registrado: jul 2004
Posts: 41
Poder: 0
carlosegs11 Va por buen camino
Ok. Gracias por todo. Estoy mirando la opción de procedimientos almacenados para ver si mejora el rendimiento.

Carlos E.
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
Actualizar o Refrescar una Tabla Caral Tablas planas 2 20-02-2007 20:12:17
Actualizar una tabla con una consulta de otra tabla JODELSA SQL 2 14-09-2006 04:07:01
Paso de una consulta a tabla Alexander Conexión con bases de datos 1 07-05-2005 02:12:29
Refrescar rejilla en una consulta con order by fjolivares Conexión con bases de datos 0 06-04-2004 17:02:00
Refrescar consulta negama SQL 2 05-09-2003 15:45:39


La franja horaria es GMT +2. Ahora son las 01:22:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi