SELECT DISTINCT tCostiXLiv.Giu
FROM tCostiXLiv;
mentre la seconda "qElGiu2" è:
SELECT DISTINCT Sum(1) AS n, t1.Giu
FROM qElGiu1 AS t1 INNER JOIN qElGiu1 AS t2 ON t1.Giu>=t2.Giu
GROUP BY t1.Giu
ORDER BY t1.Giu;
e mi servono per avere un elenco numerato dei diversi valori di Giu,
che è un campo di testo, senza ripetizioni.
Si tratta di un esempio banale che mi dà modo di chiedere se per caso
non ci sia modo di nidificare le query, una bestemmia del tipo:
SELECT DISTINCT Sum(1) AS n, t1.Giu
FROM (SELECT DISTINCT tCostiXLiv.Giu FROM tCostiXLiv;) AS t1
INNER JOIN (SELECT DISTINCT tCostiXLiv.Giu FROM tCostiXLiv;) AS t2
ON t1.Giu>=t2.Giu
GROUP BY t1.Giu
ORDER BY t1.Giu;
che ovviamente non mi funziona.
Se poi devo essere scomunicato, pazienza.
Grazie a tutti.
Riccardo Baldinotti
Select Distinct
T1.Giu, T1.QuelloChetpare
FROM tCostiXLiv As T1
Where
T1.Giu < (Select SoloUnCampo From tCostiXLiv As T2 Where T2.ID < >
= T1.ID)
--
Daniele
Rispondere scartando OneEDP, spam e 32
Se capisco bene, puoi provarlo così:
SELECT DISTINCT
(SELECT COUNT(*) FROM
(SELECT DISTINCT Giu FROM tCostiXLiv) AS T2
WHERE T2.Giu <= T1.Giu) AS n
, T1.Giu
FROM tCostiXLiv AS T1
ORDER BY T1.Giu
--
Ciao
Karl
*********
Access FAQ: http://www.donkarl.com/it
A questo punto chiedo: fra le tre soluzioni (le due query, la query
Karl, la query Riccardo) ci possono essere differenze di prestazioni?
Per esempio: nella soluzione a due query, mi pare che la prima sia
eseguita due volte.
Nel mio caso è un batter di ciglia, ma forse casi più complessi
potrebbero dare differenze, o no?
Per quanto riguarda la proposta di OneEDP, la tabella tCostiXLiv non
ha un campo id e ho modificato così:
Select Distinct
Sum(1) AS n, t1.Giu
FROM tCostiXLiv As T1
Where
T1.Giu < (Select Giu From tCostiXLiv As T2 Where T2.Giu <=
T1.Giu)
ma avevo l'errore "impossibile eseguire una query che non include
l'espressione 'Giu' come parte di una funzione di aggregazione".
Al che, aggiungendo:
GROUP BY t1.Giu;
ottengo:
"la sottoquery può restituire al massimo un record".
Ancora grazie.
Riccardo Baldinotti
Select Distinct
Sum(1) AS n, t1.Giu
FROM tCostiXLiv As T1
Where
T1.Giu< (Select Min o Max (T2.Giu) From tCostiXLiv As T2 Where T2.Giu<=
T1.Giu)
group by t1.giu
In genere le sottoquery in Access/JET sono lente.
Soprattutto con molti record spesso č piů veloce di usare
due query separate o una funzione come DLookUp/DCount ecc.
invece di una sottoquery. (v.a. www.donkarl.com/it?FAQ3.11)
--
Ciao
Karl
*********
Access FAQ: www.donkarl.com/it