31 messaggi dal 28 giugno 2003
Salve gente,
il mio problema è questo:
ho fatto un contatore delle visite con una tabella Visite:
Id, Ip, Giorno, Mese, Anno.

Se voglio sapere le visite totali, pensavo di fare una roba tipo:

SELECT count(DISTINCT Ip) as tot FROM dbo.Visite

e funziona bene, solo che mi riporta tutte le visite,
quindi se volessi distingere per Giorno, Mese e Anno, cosa dovrei fare?

SELECT count(DISTINCT Ip, Giorno, Mese, Anno)

questo non funziona, ho SQL Server 2003.
Grazie

ziubell
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
Guarda che un report è illogico che contenga contemporaneamente più raggruppamenti su dati non omogenei (giorno, mese, anno e IP).

Dovresti eseguire una query distinta per ogni criterio di raggruppamento desideri.

Ad esempio:

statistiche per gli IP
SELECT IP, Count(*) AS Totale FROM tabella GROUP BY IP;

Per Anno:
SELECT Anno, Count(*) AS Totale FROM tabella GROUP BY Anno;

Per Mese:
SELECT Mese, Count(*) AS Totale FROM tabella GROUP BY Mese;

Per Mese:
SELECT Giorno, Count(*) AS Totale FROM tabella GROUP BY Giorno;

O, volendo essere ancor più efficienti, potresti crearti una select dinamica costruita in base ad un parametro (che rappresenterà il nome del campo per il raggruppamento) passato, ad esempio in querystring(GET) o tramite un Form (POST):

strParametro = Request("parametro")
 
strSQL = "SELECT " & strParametro & ", COUNT (*) AS Totale FROM tabella GROUP BY " & strParametro & ";"
 
objRS.Open strSQL


Questo in linea generale...vedi tu

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
31 messaggi dal 28 giugno 2003
Infatti ho fatto così!
Grazie

ziubell

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.