diff --git a/database/core.tsql b/database/core.tsql
index c5c1564eff910fe8c764e8deef61566af8f7b5ce..9ae656655d3eec083c5ccb3ccb8c4f2511b05627 100644
--- a/database/core.tsql
+++ b/database/core.tsql
@@ -244,6 +244,7 @@ CREATE TABLE @PREFIX@accounting (
 	PeriodKey		VARCHAR(255)
 ) @CREATE_TABLE_SUFFIX@;
 CREATE INDEX @PREFIX@accounting_idx1 ON @PREFIX@accounting (Username);
+CREATE INDEX @PREFIX@accounting_idx2 ON @PREFIX@accounting (PeriodKey);
 
 
 
diff --git a/smradius/modules/accounting/mod_accounting_sql.pm b/smradius/modules/accounting/mod_accounting_sql.pm
index 15b97d85e9ff5b7f021f493400b0e71d3de5be36..2d05629dae4538c6a0a5d40381f8ba0c47d5698e 100644
--- a/smradius/modules/accounting/mod_accounting_sql.pm
+++ b/smradius/modules/accounting/mod_accounting_sql.pm
@@ -193,11 +193,11 @@ sub init
 
 	$config->{'accounting_usage_query'} = '
 		SELECT
-			AcctInputOctets,
-			AcctOutputOctets,
-			AcctInputGigawords,
-			AcctOutputGigawords,
-			AcctSessionTime
+			SUM(AcctInputOctets) AS AcctInputOctets,
+			SUM(AcctOutputOctets) AS AcctOutputOctets,
+			SUM(AcctInputGigawords) AS AcctInputGigawords,
+			SUM(AcctOutputGigawords) AS AcctOutputGigawords,
+			SUM(AcctSessionTime) AS AcctSessionTime
 		FROM
 			@TP@accounting
 		WHERE
diff --git a/smradiusd.conf b/smradiusd.conf
index a9d482d53dbbe66ad96992fd5cfea629f3d99e37..ffb5661d14f62a2dba2942548b5453b93c6ca50e 100644
--- a/smradiusd.conf
+++ b/smradiusd.conf
@@ -346,11 +346,11 @@ EOT
 
 accounting_usage_query=<<EOT
 	SELECT
-		AcctInputOctets,
-		AcctOutputOctets,
-		AcctInputGigawords,
-		AcctOutputGigawords,
-		AcctSessionTime
+		SUM(AcctInputOctets) AS AcctInputOctets,
+		SUM(AcctOutputOctets) AS AcctOutputOctets,
+		SUM(AcctInputGigawords) AS AcctInputGigawords,
+		SUM(AcctOutputGigawords) AS AcctOutputGigawords,
+		SUM(AcctSessionTime) AS AcctSessionTime
 	FROM
 		@TP@accounting
 	WHERE