Newsgroup: it.comp.appl.access
Titolo: Query di selezione da altre query di selezione

ciao a tutti
sono al primo Dbase e sono in difficoltà, in origine ho usato access 2000
poi sono passato alla versione 2002.
Devo estrarre dati da due Query (Qry1 e Qry2), per farlo ho usato diverse
volte Select, e fin qui tutto bene, i dati vengono estratti correttamente.
Il problema è che quando lancio la quey ci vuole un sacco di tempo prima che
venga visualizzata (anche tre quattro minuti, + aumentano i record + aumenta
il tempo di attesa).
SELECT Qry1.IDAnagrafica, Anagrafica.Cognome,
 (SELECT COUNT (*) FROM Qry2 WHERE Qry2!Stadio='Zero') AS Stadio0,
 (SELECT COUNT (*) FROM Qry1 INNER JOIN Qry2 ON Qry1.IDAnagrafica=Qry2
.IDAnagrafica WHERE Qry1![HC]=true AND Qry2!Stadio='Zero') AS [HC Stadio 0],
 (SELECT COUNT (*) FROM (Anagrafica INNER JOIN Qry1 ON
Anagrafica.IDAnagrafica = Qry1.IDAnagrafica) INNER JOIN Qry2 ON
Qry1.IDAnagrafica=Qry2 .IDAnagraficaWHERE Qry1![HC]=true AND Qry2
!Stadio='Zero' AND Anagrafica!HI=true) AS HI
FROM (Anagrafica INNER JOIN Qry1 ON Anagrafica.IDAnagrafica =
Qry1.IDAnagrafica) INNER JOIN Qry2 ON Qry1.IDAnagrafica = Qry2 .IDAnagrafica
WHERE ((([Qry1]![HC])=True) AND (([Qry2 ]![Stadio])='Zero'))
ORDER BY Anagrafica.Cognome;
Come posso fare per ottenere lo stesso risultato in minor tempo? Spero di
essere stato chiaro.
Grazie Mike.
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.767 / Virus Database: 514 - Release Date: 21/09/2004

 ha scritto nel messaggio
news:ysR5d.1890$1p....@nntpserver.swip.net...

Ciao Mike,
difficile a dirsi prova ad indicizzare i campi che vengono usati nelle Where
tipo Stadio,  HC, HI, Cognome
Saluti
Cinzia

 ha scritto nel messaggio
news:cj9fc2$gfb$1...@lacerta.tiscalinet.it...



 Ciao Mike
Ciao Mike,
Forse  si, ma bisognerebbe avere la struttura delle tabelle e che tipo di
informazioni ti servono nella query finale,
trovare una soluzione senza sapere com'è strutturato il db sottostante è
veramente arduo.
Saluti
Cinzia
PS. Quando rispondi, metti il tuo messaggio dopo quello di  chi ti risponde,
così faciliti la lettura di chi in futuro avrà un problema analogo al tuo.

 ha scritto nel messaggio
news:cj9pcf$qp5$1...@lacerta.tiscalinet.it...

Ciao Cinzia
Le Qry cui faccio riferimento si appoggiano ad altre 2(quelle sotto) che mi
servono per estrarre la data più recente da altre tabelle dove vengono
inseriti valori di uso medico,si tratta all'incirca di una cartella clinica
informatizzata, e nella query finale mi vengono restituiti in forma numerica
quanti pazienti hanno fatto il tale esame quanti anno il tale disturbo
ecc... i risultati servono poi a fini statistici.
(0)
SELECT A.IDAnagrafica, Max(A.Data) AS Data
FROM Istologia AS A
GROUP BY A.IDAnagrafica
HAVING ((Not (Max(A.Data)) Is Null));
(1)
SELECT A.*
FROM Istologia AS A INNER JOIN aaa_UltimoEsameIst_01_GetData AS B ON
(A.IDAnagrafica = B.IDAnagrafica) AND (A.Data = B.Data);
La (1) sarebbe poi la Qry1 cui faccio riferimento nell'istruzione sopra, la
Qry2 è la stessa cosa ma mi dà altre informazioni della stessa tipologia.
Sò che è incasinato ma non riesco a spiegarmi meglio, mi scuso e ringrazio.
Ciao Mike
