Newsgroup: it.comp.appl.access
Titolo: SubQuery

Ciao, potete dirmi per piacere perche questa query non funziona sotto
Access...dove ho sbagliato?
SELECT A.Utente_Cognome2, A.Utente_Nome2, A.numero_aperti2 as Positivi,
b.numero_aperti2 as Negativi, c.numero_aperti2 as Aperti
FROM
[
SELECT View_tot.Utente_Cognome as Utente_Cognome2 , View_tot.Utente_Nome as 
Utente_Nome2,  Count(View_tot.Prev_ID) AS numero_aperti2
FROM View_tot
where  Prev_Stato = "Esito Positivo"
GROUP BY View_tot.Utente_Cognome, View_tot.Utente_Nome, View_tot.Utenete_ID
].
 AS A LEFT JOIN
[
SELECT View_tot.Utente_Cognome as Utente_Cognome2 ,
View_tot.Utente_Nome as Utente_Nome2,  Count(View_tot.Prev_ID) AS
numero_aperti2
FROM View_tot
where  Prev_Stato = "Esito Negativo"
GROUP BY View_tot.Utente_Cognome, View_tot.Utente_Nome, View_tot.Utenete_ID
].
 AS b ON A.Utente_Cognome2 = b.Utente_Cognome2
LEFT JOIN
[
SELECT View_tot.Utente_Cognome as Utente_Cognome2 ,
View_tot.Utente_Nome as Utente_Nome2,  Count(View_tot.Prev_ID) AS
numero_aperti2
FROM View_tot
where  Prev_Stato = "Aperto"
GROUP BY View_tot.Utente_Cognome, View_tot.Utente_Nome, View_tot.Utenete_ID
].
 AS c ON b.Utente_Cognome2 =c.Utente_Cognome2
<Amon>

 Access...dove ho sbagliato?
A prima vista sembra un lavoraccio analizzare questo "mostro". Perchè non
provi a facilitarci le cose spiegando:
1) qual è il problema ESATTAMENTE
2) come sono fatte le tue tabelle/query
3) cosa vuoi ottenere ESATTAMENTE
Alessandro

 ha scritto nel messaggio
news:cqcedn$btn$1...@lacerta.tiscalinet.it...

Le subquery restituiscono un solo campo e un solo record
es:
select Pippo, (select count(pluto) as Cane from Topolinia) as Amici from ...
MAssimiliano

 1) qual č il problema ESATTAMENTE



[CUT]
Ciao Amon,
in presenza di Join multipli Access usa una sintassi che prevede l'uso di
parentesi tonde che raggruppano diversi blocchi di join.
(è una seccatura ma Access è fatto così)
Es..
------------------
SELECT A.Codice,
         B.Codice,
         C.Codice
FROM (Tabella1 AS A LEFT JOIN Tabella2 AS B ON A.Codice = B.Codice)
     LEFT JOIN Tabella3 AS C ON B.Codice = C.Codice
-------------------
Quindi applicando questa regola alle tue tabelle derivate ( non subquery )
dovrebbe funzionare :-)
-------------------------
SELECT A.Utente_Cognome2, A.Utente_Nome2, A.numero_aperti2 as Positivi,
b.numero_aperti2 as Negativi, c.numero_aperti2 as Aperti
FROM (
[
SELECT View_tot.Utente_Cognome as Utente_Cognome2 , View_tot.Utente_Nome as
Utente_Nome2,  Count(View_tot.Prev_ID) AS numero_aperti2
FROM View_tot
where  Prev_Stato = "Esito Positivo"
GROUP BY View_tot.Utente_Cognome, View_tot.Utente_Nome, View_tot.Utenete_ID
].
 AS A LEFT JOIN
[
SELECT View_tot.Utente_Cognome as Utente_Cognome2 ,
View_tot.Utente_Nome as Utente_Nome2,  Count(View_tot.Prev_ID) AS
numero_aperti2
FROM View_tot
where  Prev_Stato = "Esito Negativo"
GROUP BY View_tot.Utente_Cognome, View_tot.Utente_Nome, View_tot.Utenete_ID
].
 AS b ON A.Utente_Cognome2 = b.Utente_Cognome2  )
LEFT JOIN
[
SELECT View_tot.Utente_Cognome as Utente_Cognome2 ,
View_tot.Utente_Nome as Utente_Nome2,  Count(View_tot.Prev_ID) AS
numero_aperti2
FROM View_tot
where  Prev_Stato = "Aperto"
GROUP BY View_tot.Utente_Cognome, View_tot.Utente_Nome, View_tot.Utenete_ID
].
 AS c ON b.Utente_Cognome2 =c.Utente_Cognome2
-----------------------------
Ciao Giorgio

 0
Non vorrei semplificare troppo ma io proverei qualcosa del genere:
SELECT DISTINCT A.Utente_Cognome2, A.Utente_Nome2,
(SELECT Count(*) FROM View_tot B WHERE
 B.Prev_Stato = "Esito Positivo" AND B.Utente_ID=A.Utente_ID) AS Positivi,
(SELECT Count(*) FROM View_tot B WHERE
 B.Prev_Stato = "Esito Negativo" AND B.Utente_ID=A.Utente_ID) AS Negativi,
(SELECT Count(*) FROM View_tot B WHERE
 B.Prev_Stato = "Aperto" AND B.Utente_ID=A.Utente_ID) AS Aperti
FROM View_tot AS A;
HTH.
Alessandro

 0
Non vorrei semplificare troppo ma io proverei qualcosa del genere:
