Ok, forse avro' la guidozzite (niente query annidate del tipo select * from pippo where descrizione in (select descrizione from pluto) ), pero' facendo girare il tuo codice:

1. Creo un db popolato:
codice:
create table schede_agenzie(descrizione varchar(10), stato char(1));

create table schede_persone(descrizione varchar(10), stato char(1));

insert into schede_agenzie values('uno','a');
insert into schede_agenzie values('due','a');
insert into schede_agenzie values('tre','b');
insert into schede_agenzie values('quattro','c');

insert into schede_persone values('uno','a');
insert into schede_persone values('due','a');
insert into schede_persone values('tre','b');
insert into schede_persone values('quattro','a');
lancio il tuo codice:

codice:
create temporary table temp
select * from schede_agenzie
where stato = 'a';

insert into temp
select * from schede_persone
where stato = 'a';

select * from temp;
ottengo:
codice:
+-------------+-------+
| descrizione | stato |
+-------------+-------+
| uno         | a     |
| due         | a     |
| uno         | a     |
| due         | a     |
| quattro     | a     |
+-------------+-------+
che non e' proprio una intersect..... puoi chiarirmi altrimenti cosa intendevi? :master: