Hola Lista

Empleando except funciona mejor:


SELECT A.fid,A.fbanco,A.fecha
FROM  A JOIN
(
     SELECT fid FROM A
     EXCEPT
     SELECT  pid FROM B
) as C on A.fid=C.fid
WHERE A.fbanco = 1
GROUP BY 1,2,3

El 15 de diciembre de 2014, 7:17 p. m., Edwin Quijada<
listas_quij...@hotmail.com> escribió:
>
> Hola!
> Estoy haciedno un select que implica dos tablas , es mas bien un except,
> hasta aho todo bien ya lo hice pero ando buscando una forma un poco mas
> rapida de lograr lo que quiero
>
> create table A(
> fid int,
>         fbanco int,
> name varchar(20),
> fecha timestamp );
> create table B(
> pid int,
> user varchar(20),
> address varchar(30),
> fecha_Actual date )
>
> Necesito los registros que estan en A pero no estan en B, hice algo como
> esto
>
> select fid,fbanco,fecha from A where fbanco = 1 AND fid NOT IN(select pid
> FROM B ) group by 1,2,3
>
> Esto funciona pero es un poco lento , alguien podria darme una idea de
> hacer algo un poco mas optimo. La tabla A tiene 300K y la B 200K.
>
> En otras palabras quiero todos los que estan en A pero no en B pero
> agrupados ya que A es una tabla de detalle por eso es que agrupo. Pense en
> una vista pero las vistas no se pueden indexar , o si ?
>
> Gracias
>


-- 
Cordialmente,

Ing. Hellmuth I. Vargas S.
Esp. Telemática y Negocios por Internet
Oracle Database 10g Administrator Certified Associate
EnterpriseDB Certified PostgreSQL 9.3 Associate

Responder a