E' un mese, non scherzo, che mi sto sbattendo con una query di Access.
Devo contare le occorrenze annuali di una colonna contenente una data.
Quindi voglio che il risultato della query contenga 3 colonne: il conteggio delle occorrenze della data dell'anno corrente, dell'anno passato, e degli altri anni precedenti cioè ad esempio:
Anno attuale----------Anno passato---------Anni precedenti
-----------------------------------------------------------------------
6495-------------------17018-------------------26006-------------
Con SQL Server (e anche con MySQL) la query che ritorna perfettamente questo risultato è:
SELECT SUM(
CASE
WHEN [data_rilevamento] >= CONCAT( YEAR( CURDATE( ) ) , '-01-01' )
THEN 1
END ) AS Anno_Attuale, SUM(
CASE
WHEN [data_rilevamento] < CONCAT( YEAR( CURDATE( ) ) , '-01-01' )
AND [data_rilevamento] >= CONCAT( YEAR( CURDATE( ) ) -1, '-01-01' )
THEN 1
END ) AS Anno_Passato, SUM(
CASE
WHEN [data_rilevamento] < CONCAT( YEAR( CURDATE( ) ) -1, '-01-01' )
THEN 1
END ) AS Anni_Precedenti
FROM raccomandate
Conoscendo superficialmente la sintassi delle query MS Access non trovo soluzione, qualsiasi modifica apporto a questa query genero errori.
Provando con la UNION mi da un risultato esatto nei numeri ma errato nella forma ovvero:
SELECT Count(*) AS [Anno Corrente]
FROM Raccomandate
WHERE Year([data_rilevamento])=Year(Now())
UNION
SELECT Count(*) AS [Anno Corrente]
FROM Raccomandate
WHERE Year([data_rilevamento])=Year(Now())-1
UNION SELECT Count(*) AS [Anno Corrente]
FROM Raccomandate
WHERE Year([data_rilevamento])<=Year(Now())-2;
mi restituisce questo:
Anno attuale
----------------
6495
17018
26006
C'è una buonanima che mi posta la soluzione?
Non ho l'abitudine di chiedere, ma è un mese che non ci dormo.
Grazie in anticipo.