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 16-11-2011
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Subconsulta con clientes sin comprar en un período de tiempo

Hola, estoy teniendo problemas con esta subconsulta que quiero hacer y que no consigo resolver, a ver si me podeis echar una mano, os explico el problema.

Tengo una tabla con datos de clientes:

Cita:
CodCli:texto;
NomCli:texto;
y otra con facturas:

Cita:
CCodCli:texto;
Factura:Número;
Fecha:Fecha;
Precio:Número;
Lo que yo quiero obtener son los clientes que llevan 6 meses sin facturar pero que sus últimas compras esten recogidas en los últimos 12 meses. Por lo que los clientes que llevan más de 1 año sin comprar no saldrían (esto es para que no salgan los clientes del 2000, 2001, etc).

Al principio había puesto algo como esto:
Código SQL [-]
SELECT Clientes.* FROM Clientes WHERE clientes.codcli IN (SELECT DISTINCT CCODCLI FROM Facturas WHERE Fecha<#'+datetostr(now-(strtoint(TxtMesesSin.Text)*30))+'# AND fecha>#'+datetostr(now-(strtoint(txtMesesRango.text)*30))+'#)

El campo TxtMesesSin es donde se introducen los meses sin comprar, por defecto 6, y en TxtMesesRango se introduce el espacio de tiempo que se quiere tener en cuenta, por defecto 12.
Al ponerlo de esta forma lo que ocurre es que me saca clientes que han seguido comprando porque tienen facturas que cumplen la condición pero también otras más actuales.
Luego he puesto lo siguiente:

Código SQL [-]
SELECT clientes.* FROM clientes WHERE clientes.codcli IN (SELECT DISTINCT CCODCLI,max(fecha) as fecha FROM Facturas WHERE Fecha<#'+datetostr(now-(strtoint(TxtMesesSin.Text)*30))+'# AND Fecha>#'+datetostr(now-(strtoint(txtMesesRango.text)*30))+'# GROUP BY CCODCli)

Pero por lo visto no pueden aparecer dos campos en la subconsulta y me lanza un error diciendome que debería utilizar exists, pero por lo que he leido exists solo manda true o false a la consulta principal.

Espero sus noticias.

Gracias y saludos.
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
Comprar Delphi original o usarlo periodo de pruebas ? flashtkd Debates 12 06-08-2011 21:16:57
Documental: Comprar, tirar, comprar rretamar La Taberna 11 26-01-2011 18:06:40
Como direccionar a una pagina en un periodo de tiempo Shidalis PHP 15 28-04-2006 19:23:33
Es Posible que 2 ó más Clientes Bloqueen 1 Registro al mismo tiempo???? AGAG4 Conexión con bases de datos 0 06-01-2006 00:28:13
Mis clientes necesitan comprar Interbase? Osorio Firebird e Interbase 3 09-07-2003 22:28:29


La franja horaria es GMT +2. Ahora son las 05:23:39.


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