7 messages in com.mysql.lists.mysql-esRE: Registros no coincidentes| From | Sent On | Attachments |
|---|---|---|
| Juan Jose Hernandez | 26 Jan 2007 12:18 | |
| Grover Campos A. | 26 Jan 2007 13:37 | |
| Juan Jose Hernandez | 26 Jan 2007 13:57 | |
| Bonjo | 29 Jan 2007 05:43 | |
| Grover Campos A. | 29 Jan 2007 08:23 | |
| Mauricio A. Ferrari | 05 Feb 2007 05:38 | |
| Grover Campos A. | 05 Feb 2007 10:15 |
| Subject: | RE: Registros no coincidentes![]() |
|---|---|
| From: | Grover Campos A. (gcam...@ing.puc.cl) |
| Date: | 01/26/2007 01:37:49 PM |
| List: | com.mysql.lists.mysql-es |
Hola Juan:
Yo lo haría así.
SELECT * FROM contratos WHERE contract NOT IN (SELECT contract FROM facturas WHERE usage_year = 2007 GROUP BY contract)
Ve si te sirve, y avisas.
Saludos
------------------------------------------------------------ Grover M. Campos Ancajima
-----Mensaje original----- De: Juan Jose Hernandez [mailto:juan...@ranchobanderas.com] Enviado el: Viernes, 26 de Enero de 2007 17:19 Para: mysq...@lists.mysql.com Asunto: Registros no coincidentes
Que tal Lista!
Tengo una situación con un par de tablas, espero me puedan ayudar.
La primera tabla es de mis clientes; la segunda de las facturas que les he enviado.
CREATE TABLE `contratos` ( `num_cont` int(5) NOT NULL auto_increment, `contract` varchar(7) NOT NULL default '', `address` varchar(45) NOT NULL default '', `city` varchar(20) NOT NULL default '', `state` varchar(20) NOT NULL default '', `zip` varchar(10) NOT NULL default '', `country` varchar(20) NOT NULL default '', `email` varchar(40) default NULL, PRIMARY KEY (`num_cont`,`contract`), UNIQUE KEY `contract` (`contract`) ) TYPE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=1 ;
CREATE TABLE `facturas` ( `num_fact` int(7) NOT NULL auto_increment, `contract` varchar(7) NOT NULL default '', `usage_year` varchar(4) NOT NULL default '', `fecha_fact` date NOT NULL default '0000-00-00', `tot_fact` decimal(7,2) NOT NULL default '0.00', PRIMARY KEY (`num_fact`), UNIQUE KEY `contract` (`contract`,`anio_uso`) ) TYPE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=12 ;
En la tabla “Facturas” el campo “usage_year” es el que registra el año de uso.
Quisiera saber a cuales de mis clientes no les he enviado la factura de este año.
He utilizado el siguiente query:
SELECT contratos.contract AS el_contrato, datecont, address, city, state, zip, country, email, email2,
FROM contratos LEFT JOIN facturas ON contratos.contract=facturas.contract
WHERE LOWER(country) != 'mexico'
AND facturas.contract IS NULL
Pero me trae los registros de contratos que no tienen factura alguna.
Gracias!
Juanjo




