Ayuda porfavor!!!

03/04/2007 - 06:58 por David Méndez | Informe spam
tengo las siguientes tablas:

CREATE TABLE VENTAS (
CLIREAL INT NOT NULL,
MATREAL CHAR(10) NOT NULL,
QTY SMALLINT NOT NULL DEFAULT 0,
AMOUNT DECIMAL(9,2) NOT NULL DEFAULT '0.00',
MES SMALLINT NOT NULL,
CLIENTE INT NOT NULL DEFAULT 0,
MATERIAL INT NOT NULL DEFAULT 0
)

CREATE TABLE CLIENTCONV (
CODE INT PRIMARY KEY,
CONV INT NOT NULL DEFAULT 0
)

CREATE TABLE CLIENTES (
CODE INT PRIMARY KEY,
NAME VARCHAR(40) NOT NULL,
VENDEDOR TINYINT NOT NULL DEFAULT 0,
USUARIO INT DEFAULT 0xFFFFFFFF
)

Necesito escoger los miembros que esten en estas 2 selecciones (NO la
UNION):

SELECT DISTINCT CLIREAL FROM VENTAS WHERE CLIREAL NOT IN (SELECT CODE FROM
CLIENTES)
SELECT DISTINCT CLIREAL FROM VENTAS WHERE CLIREAL NOT IN (SELECT CODE FROM
CLIENTCONV)

Basicamente necesito escoger las filas VENTAS.CLIREAL que NO se encuentran
en las filas CLIENTES.CODE y que simultaneamente no se encuentren en las
filas CLIENTCONV.CODE

Creo que debo usar la clave JOIN pero la verdad no la se usar.

Tambien tengo la idea de utilizar tablas temporales, con lo que podria hacer
1 filtro para generar una tabla y luego utilizar esta para hacer otro
filtro. Pero No se como hacerlo.

Muchas gracias.

David Méndez.
 

Leer las respuestas

#1 Maxi
03/04/2007 - 14:27 | Informe spam
Hola, te pído que antes de hacer estas pregunta leas en tus manuales por lo
menos lo basico, fijate como se hace un select con left join


"David Méndez" escribió en el mensaje de noticias
news:
tengo las siguientes tablas:

CREATE TABLE VENTAS (
CLIREAL INT NOT NULL,
MATREAL CHAR(10) NOT NULL,
QTY SMALLINT NOT NULL DEFAULT 0,
AMOUNT DECIMAL(9,2) NOT NULL DEFAULT '0.00',
MES SMALLINT NOT NULL,
CLIENTE INT NOT NULL DEFAULT 0,
MATERIAL INT NOT NULL DEFAULT 0
)

CREATE TABLE CLIENTCONV (
CODE INT PRIMARY KEY,
CONV INT NOT NULL DEFAULT 0
)

CREATE TABLE CLIENTES (
CODE INT PRIMARY KEY,
NAME VARCHAR(40) NOT NULL,
VENDEDOR TINYINT NOT NULL DEFAULT 0,
USUARIO INT DEFAULT 0xFFFFFFFF
)

Necesito escoger los miembros que esten en estas 2 selecciones (NO la
UNION):

SELECT DISTINCT CLIREAL FROM VENTAS WHERE CLIREAL NOT IN (SELECT CODE FROM
CLIENTES)
SELECT DISTINCT CLIREAL FROM VENTAS WHERE CLIREAL NOT IN (SELECT CODE FROM
CLIENTCONV)

Basicamente necesito escoger las filas VENTAS.CLIREAL que NO se encuentran
en las filas CLIENTES.CODE y que simultaneamente no se encuentren en las
filas CLIENTCONV.CODE

Creo que debo usar la clave JOIN pero la verdad no la se usar.

Tambien tengo la idea de utilizar tablas temporales, con lo que podria
hacer 1 filtro para generar una tabla y luego utilizar esta para hacer
otro filtro. Pero No se como hacerlo.

Muchas gracias.

David Méndez.

Preguntas similares