seleccion de documentos con inner join

31/01/2008 - 15:15 por mp | Informe spam
Señores, tengo que hacer un seleccion desde una tabla que contiene
documentos de venta.
En esta tabla tengo el numero, la fecha, el codigo del cliente y los valores
del documento el nombre del cliente esta en otra tabla
En algunos documentos no va el codigo del cliente (boletas). Con la
instruccion SQL que expongo aqui
no me muestra los documentos que no tiene codigo de cliente.

SELECT TIPDOC,NUMDOC, FECDOC, CODCLIE,NOMCLIE,MAEEDO,VALNETO, VALIVA,
FROM DOCUM
INNER JOIN CLIENTES ON (DOCUM.CODCLIE=CLIENTES.CODIGO)
WHERE YEAR(FECDOC) = '2008') AND (MONTH(FECDOC) = '01')
AND (TIPDOC IN ('FC','BL','NC','FD')) ORDER BY NUMDOC

SQL2000 SP4 WinXP

Gracias por la ayuda
 

Leer las respuestas

#1 Carlos Sacristán
31/01/2008 - 16:43 | Informe spam
Si dos grupos quieres combinarlos por un valor y éste no existe en uno de
dichos grupos, no es posible que te muestre la información. Lo que tienes
que indicar es que quieres mostrar todos los valores de un grupo, estén o no
en el otro grupo

En SQL esto lo haces por medio de combinaciones externas (LEFT o RIGHT
JOIN). Es decir, la instrucción que debieras ejecutar sería:

SELECT TIPDOC,NUMDOC, FECDOC, CODCLIE,NOMCLIE,MAEEDO,VALNETO, VALIVA
FROM DOCUM
LEFT JOIN CLIENTES ON (DOCUM.CODCLIE=CLIENTES.CODIGO)
WHERE YEAR(FECDOC) = '2008') AND (MONTH(FECDOC) = '01')
AND (TIPDOC IN ('FC','BL','NC','FD')) ORDER BY NUMDOC



"mp" escribió en el mensaje
news:
Señores, tengo que hacer un seleccion desde una tabla que contiene
documentos de venta.
En esta tabla tengo el numero, la fecha, el codigo del cliente y los
valores del documento el nombre del cliente esta en otra tabla
En algunos documentos no va el codigo del cliente (boletas). Con la
instruccion SQL que expongo aqui
no me muestra los documentos que no tiene codigo de cliente.

SELECT TIPDOC,NUMDOC, FECDOC, CODCLIE,NOMCLIE,MAEEDO,VALNETO, VALIVA,
FROM DOCUM
INNER JOIN CLIENTES ON (DOCUM.CODCLIE=CLIENTES.CODIGO)
WHERE YEAR(FECDOC) = '2008') AND (MONTH(FECDOC) = '01')
AND (TIPDOC IN ('FC','BL','NC','FD')) ORDER BY NUMDOC

SQL2000 SP4 WinXP

Gracias por la ayuda


Preguntas similares