38 messaggi dal 21 ottobre 2004
salve spero di non aver sbagliato forum.

in pratica non riesco a creare una query... in teoria credo si a possibile, ma proprio non riesco...

ho fatto un contatore di accessi per un sito utilizzando un db access.
in pratica c'è una tabella dove raccolgo alcuni dati (accessi unici, reload, indirizzo ip, nazione di provenienza etc), e un'altra tabella dove inserisco solo alcuni dati (anno, mese accessi unici e reload) raggruppando i record della prima tabella, allo scopo di poter eliminare i record più datati e ridurre così la mole di dati raccolti.

volendo fare un report sugli accessi unici mensili, non riesco a fare la query.

la seguente query mi restituisce i valori giusti.

select ANNO, MESE, UNICI, RELOAD, (MEDI) as media from
(
SELECT top 12 T1.* FROM
[
(SELECT YEAR(DATA) AS ANNO, MONTH(DATA) AS MESE, COUNT(CONTATORE.ID) AS UNICI, SUM(RE) AS RELOAD, UNICI AS MEDI FROM CONTATORE GROUP BY YEAR(DATA), MONTH(DATA) )
UNION
(SELECT ANNO, MESE, UNICI, RELOAD, UNICI AS MEDI FROM ARCHIVIO)
]. AS T1
)

volendo calcolare la percentuale degli accessi unici, dovrei modificare il campo [(medi) as media] in [(medi / xxx) as media] (la parte xxx sarebba un valore calcolato con la query seguente), ma il tutto va in errore...
select sum(MEDI) as media from
(
SELECT top 12 T1.* FROM
[
(SELECT YEAR(DATA) AS ANNO, MONTH(DATA) AS MESE, COUNT(CONTATORE.ID) AS UNICI, SUM(RE) AS RELOAD, UNICI AS MEDI FROM CONTATORE GROUP BY YEAR(DATA), MONTH(DATA) )
UNION
(SELECT ANNO, MESE, UNICI, RELOAD, UNICI AS MEDI FROM ARCHIVIO)
]. AS T1
)

come posso fare?
grazie
Modificato da Antonio123 il 06 luglio 2011 20.41 -
Modificato da Antonio123 il 06 luglio 2011 20.44 -
Modificato da Antonio123 il 06 luglio 2011 20.45 -
38 messaggi dal 21 ottobre 2004
se può essere di aiuto, ho risolto il problema:

select ANNO, MESE, UNICI, RELOAD, (round((MEDI / (select sum(MEDI) as md from (SELECT top 12 T2.* FROM [(SELECT YEAR(DATA) AS ANNO, MONTH(DATA) AS MESE, COUNT(CONTATORE.ID) AS UNICI, SUM(RE) AS RELOAD, UNICI AS MEDI FROM CONTATORE GROUP BY YEAR(DATA), MONTH(DATA)) UNION(SELECT ANNO, MESE, UNICI, RELOAD, UNICI AS MEDI FROM ARCHIVIO)]. AS T2))*100),2) & ' %') as media from (SELECT top 12 T1.* FROM [(SELECT YEAR(DATA) AS ANNO, MONTH(DATA) AS MESE, COUNT(CONTATORE.ID) AS UNICI, SUM(RE) AS RELOAD, UNICI AS MEDI FROM CONTATORE GROUP BY YEAR(DATA), MONTH(DATA))UNION(SELECT ANNO, MESE, UNICI, RELOAD, UNICI AS MEDI FROM ARCHIVIO)]. AS T1)

c'era qualche parentesi di meno....

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.