Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-04-2014
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
Ayuda para montar una consulta

Hola compañeros me encuentro un poco torpe no se si es por la hora o por que aun no me he acostado, perro llevo un rato y no consigo lo que quiero y os pido ayuda para que me ayudéis a como montar la siguiente consulta.

Lo que quiero hacer es recorrer por orden de código todos los clientes, y que me diga el total de lo comprado entre unas determinadas fechas, poniéndome 0 en los que no hayan comprado nada, así de esta manera, se puede ver que clientes ya no compran o no se les ha visitado nuevamente.

La estructura de las tablas Cliente y Facturas os la detallo a continuación:

CLIENTES

Código Delphi [-]
CREATE TABLE CLIENTES (
    ID                 INTEGER NOT NULL,
    CODIGO             CODIGO /* CODIGO = VARCHAR(20) NOT NULL */,
    NOMBRE             V80 /* V80 = VARCHAR(80) */,
    IMAGEN             IMAGEN /* IMAGEN = BLOB SUB_TYPE 0 SEGMENT SIZE 80 */,
    OBSERVACIONES      MEMO /* MEMO = BLOB SUB_TYPE 1 SEGMENT SIZE 80 */,
    FECHAALTA          FECHA /* FECHA = DATE */,
    ACTIVO             LOGIC /* LOGIC = CHAR(1) */,
    DESCUENTOMAXIMO    POR /* POR = NUMERIC(15,4) */,
    CODIGOFORMAPAGO    CODIGO /* CODIGO = VARCHAR(20) NOT NULL */,
    CODIGOIMPUESTO     CODIGO /* CODIGO = VARCHAR(20) NOT NULL */,
    DOCUMENTO          V20 /* V20 = VARCHAR(20) */,
    TIPODOCUMENTO      V20 /* V20 = VARCHAR(20) */,
    RETENCIONES        POR /* POR = NUMERIC(15,4) */,
    REQ                POR /* POR = NUMERIC(15,4) */,
    TAFIRA             INTEGER,
    DIASPRESENTACION   V20 /* V20 = VARCHAR(20) */,
    DIASCOBRO          V20 /* V20 = VARCHAR(20) */,
    AVISOS             MEMO /* MEMO = BLOB SUB_TYPE 1 SEGMENT SIZE 80 */,
    LIMITECREDITO      POR /* POR = NUMERIC(15,4) */,
    PENDIENTEPAGO      POR /* POR = NUMERIC(15,4) */,
    AGENTE             V20 /* V20 = VARCHAR(20) */,
    SECTOR             V40 /* V40 = VARCHAR(40) */,
    DIRECCION          V80 /* V80 = VARCHAR(80) */,
    CODIGOPOSTAL       V5 /* V5 = VARCHAR(5) */,
    POBLACION          V40 /* V40 = VARCHAR(40) */,
    PROVINCIA          V40 /* V40 = VARCHAR(40) */,
    PAIS               V20 /* V20 = VARCHAR(20) */,
    TELEFONO           V20 /* V20 = VARCHAR(20) */,
    FAX                V20 /* V20 = VARCHAR(20) */,
    MOVIL              V20 /* V20 = VARCHAR(20) */,
    PERSONADECONTACTO  V80 /* V80 = VARCHAR(80) */,
    WEB                V150 /* V150 = VARCHAR(150) */,
    MAIL               V80 /* V80 = VARCHAR(80) */,
    LIBRE              V80 /* V80 = VARCHAR(80) */,
    USARREQ            LOGIC /* LOGIC = CHAR(1) */,
    DISTRIBUIDOR       LOGIC /* LOGIC = CHAR(1) */
);

Y facturas

Código Delphi [-]
CREATE TABLE FACTURA (
    ID                   INTEGER NOT NULL,
    NUMERO               CODIGO /* CODIGO = VARCHAR(20) NOT NULL */,
    CODIGOCLIENTE        CODIGO /* CODIGO = VARCHAR(20) NOT NULL */,
    CODIGOAGENTE         CODIGO /* CODIGO = VARCHAR(20) NOT NULL */,
    TOTALCOMISION        POR /* POR = NUMERIC(15,4) */,
    CODIGOFORMAPAGO      CODIGO /* CODIGO = VARCHAR(20) NOT NULL */,
    IMPUESTO1            POR /* POR = NUMERIC(15,4) */,
    IMPUESTO2            POR /* POR = NUMERIC(15,4) */,
    IMPUESTO3            POR /* POR = NUMERIC(15,4) */,
    IMPUESTO4            POR /* POR = NUMERIC(15,4) */,
    IMPUESTO5            POR /* POR = NUMERIC(15,4) */,
    PESOTOTAL            POR /* POR = NUMERIC(15,4) */,
    SUBTOTAL             POR /* POR = NUMERIC(15,4) */,
    TOTALIMPUESTOS       POR /* POR = NUMERIC(15,4) */,
    TOTAL                POR /* POR = NUMERIC(15,4) */,
    TOTALDESCUENTOS      POR /* POR = NUMERIC(15,4) */,
    SERIE                V5 /* V5 = VARCHAR(5) */,
    NOTA                 MEMO /* MEMO = BLOB SUB_TYPE 1 SEGMENT SIZE 80 */,
    FECHA                FECHA /* FECHA = DATE */,
    FECHAPAGO            FECHA /* FECHA = DATE */,
    COBRADA              LOGIC /* LOGIC = CHAR(1) */,
    RECARGOEQUIVALENCIA  POR /* POR = NUMERIC(15,4) */,
    LIBRE                V80 /* V80 = VARCHAR(80) */,
    PENDIENTECOBRO       POR /* POR = NUMERIC(15,4) */,
    RF                   V20 /* V20 = VARCHAR(20) */
);

El que los clientes que no hyan comprado entre las fechas dadas lo ponga a 0 es importante, ya que en el grid, los marcara en rojo, mientras que al resto en verde.

Claro esta que mejor si sólo aparece un registro por cliente con el total de todas las facturas que tenga en ese mes

Desde ya os doy las gracias, ahora me voy a dormir.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
 



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
Servicios gratuitos para montar una empresa (WEB) MAXIUM La Taberna 9 05-11-2013 08:18:02
Solicito ayuda en cuestiones de montar un TPV José Luis Garcí Varios 10 14-03-2012 09:05:49
Seleccion multiple para montar query tgsistemas SQL 8 22-04-2010 18:48:19
Montar un apache para dominio publico, que necesito... alexander66 PHP 2 28-03-2007 00:52:33
Montar red para 2 PCs alfredosg19 Redes 5 17-07-2006 09:07:23


La franja horaria es GMT +2. Ahora son las 09:02:52.


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