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 07-02-2006
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
JOIN un poco raro

Hola a todos:

Llevo varios días devanándome los sesos con una consulta que no me sale:

Veamos:
Tenemos 3 tablas:

Cobranza -- Clientes -- Det_Cobranza

Cobranza contiene facturas por cobrar con todos sus datos
Clientes contiene obviamente los datos de los clientes
Det_Cobranza es un subgrupo de facturas que tambien estan contenidas en la tabla cobranza pero no contiene todos los campos de aquella.

Cobranza y clientes comparten el campo NUMCLIENTE
Cobranza y Det_Cobranza comparten el campo ID
Det_Cobranza y Clientes comparten el campo NUMCLIENTE tambien

Ahora bien, hay que hacer una consulta que devuelva los datos explosionados de la tabla Det_Cobranza tomando los detalles de las otras dos tablas:

Det_Cobranza solo contiene:

ID, NUMCLIENTE,IMPORTE, FOLIO

parecería sencillo, pero hay un detalle. el valor del campo NUMCLIENTE no precisamente aparecerá en la tabla CLIENTES, o sea que si ponemos un JOIN asi:
Código:
WHERE DET_COBRANZA.NUMCLIENTE=CLIENTES.NUMCLIENTE
dejamos fuera a todos los registros de DET_COBRANZA en donde NUMCLIENTE no aparezca en la tabla CLIENTES...¿Como diseñamos la consulta de manera que devuelva tambien los registros que no tienen coincidencia en la tabla CLientes?

Ojalá y alguien me eche la mano...
saludos.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #2  
Antiguo 07-02-2006
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
No es que sea un join raro sino que no es el tipo de join que necesitas. Para incluir filas aun cuando en la tabla relacionada no haya coincidencias lo que requieres es un outer join. Algo como

Código SQL [-]
select det_cobranza.*
from det_cobranza
left join clientes on clientes.numcliente = det_cobranza.numcliente

// Saludos
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
Erro poco raro JoanKa Firebird e Interbase 1 03-03-2005 21:31:44
Outer Join - View joan Firebird e Interbase 0 08-11-2004 01:19:41
un error un poco raro merlin Conexión con bases de datos 2 19-07-2004 12:45:06
LEFT JOIN extraños? Gydba Oracle 5 07-05-2004 22:11:32


La franja horaria es GMT +2. Ahora son las 21:12:49.


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