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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-04-2004
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Cool Al filtrar por fecha borra los "sin compras"

Hola Amigos:
Estoy Utilizando InterBase Open Sourse Ver 1.0.0.326 y necesito hacer una consulta que traiga los clientes y la cantidad de unidades que compraron en un período.
Tengo una Tabla de Clientes y otra de Transacciones con un campo llamado Units (esta empresa vende un único producto).

El problema que me surge es que no me muestra los clientes que no compraron, es decir que no tienen registros en la tabla de transacciones en ese período.

Estoy probando con:

Select
Cs.Customer_code as Codigo,
Cs.Customer_name as Cliente,
Sum(Tr.Units) as Unidades

From Customer Cs
Left Outer Join Transactions Tr on Tr.customer_code = Cs.customer_code

Where TR.Transaction_Date > "3/1/2003 00:00:00"
And TR.Transaction_Date < "3/31/2003 23:59:59"

Group BY Cs.Customer_Code, Cs.Customer_Name
Order by 3 DESC


También pobé agregando en Where
or Tr.Units is null
or Tr.Units=0
pero no obtuve el resultado esperado.
Responder Con Cita
  #2  
Antiguo 14-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
creo que algo así debiera funcionar...

Código:
Select Cs.Customer_code Codigo, Cs.Customer_name Cliente, 
       Sum(Tr.Units) Unidades
  From Customer Cs
       Left Outer Join Transactions Tr 
       on Tr.customer_code = Cs.customer_code
 Where (tr.transaction_date is null) or
       (TR.Transaction_Date between "3/1/2003 00:00:00" and "3/31/2003 23:59:59")
 Group BY Cs.Customer_Code, Cs.Customer_Name
 Order by 3 DESC
Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 14-04-2004
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Cool Gracias

Gracias jachguate, funcionó a la perfeción.

Un abrazo
Responder Con Cita
  #4  
Antiguo 14-04-2004
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
Cita:
Empezado por Carmelo Cash
Gracias jachguate, funcionó a la perfeción.
Una pregunta:

¿Te muestra incluso los clientes que no tienen compras en el periodo determinado pero sí en otras fechas?

Sé que en Interbase puede ser distinto pero al hacer una prueba rápida con Paradox pasó que me incluía clientes sin compras en el periodo sólo si dichos clientes de hecho no tenían ni una sóla compra.

// Saludos
Responder Con Cita
  #5  
Antiguo 14-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Te respondo yo... si, mostrará todos los clientes, tengan o no tengan compras en el rango de fechas. Para los que si tengan en el rango de fechas, el total de unidades compradas, y los que no, solo los datos del cliente (y null en el total de unidades).

Esto es porque el encuentro externo se hace contra la tabla de clientes.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 14-04-2004
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Para salir de duda

Sí, te muestra todos los clientes.
Para estar seguro puse un período año 2005 y me mostró toda la lista de clientes con la unidades en null.


Hasta pronto.
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


La franja horaria es GMT +2. Ahora son las 16:29:31.


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