数据库字段
username number datastar dataend
下面我把我做的完整代码奉上!功能如下
按照姓名求出当年的每个月的,每周的,前一个月的使用流量和用折线图表示出来!
每个月的就是重2012-01-01开始到今天(按照月为单位 yyyy-MM)sum(number)group by 时间就可以了
这里的时间要把 天 时 分 秒 去掉!
因为group by 时间的时候!比如2012-12-12 12:12:12, 2012-12-13 12:13:12
这样分组的话2012-12这天会有不止一条记录,我们要求的是2012-12这月所有的sum!
DATE_FORMAT(datastar , '%Y-%m)my_month
这件话就是把 天 时 分 秒 取掉了 查出来只显示 2012-12 那么我们这个时候在group by 时间 再sum一下就把这一月的和求出来了!
每周的按照周为单位 一共显示2012-01-01到今天的全部周数 求周数的sum放到chart上
前一个月的 按照天数为单位 31条记录(yyyy-MM-dd)
这个功能现在已经完善了!
返回的是databable 如果
DbStatement db = dbc.DbSessionOwa.GetStatement(sql);
return dbc.DbSessionOwa.ExecuteDataTable(db);
这两句话里面的类我没写,反正返回的databable 都知道怎么返回的,所以这两句话你们可以用你们的方法返回datatable!
//每天
public static DataTable SelectDay(string name, string type, string star, string end)
{
string sql = string.Format("SELECT round(sum(size/1000/1024),2)sums,DATE_FORMAT(date, '%Y-%m-%d')my_month from owa_isa where username='{0}' and client='{1}' and date between '{2}' and '{3}' GROUP BY my_month", name,type, star,end);
DbStatement db = dbc.DbSessionOwa.GetStatement(sql);
return dbc.DbSessionOwa.ExecuteDataTable(db);
}
//每周
public static DataTable SelectWeek(string name, string type, string star, string end)
{
string sql = string.Format("SELECT round(sum(size/1000/1024),2)sums,week(date,1)my_month from owa_isa where username='{0}' and client='{1}' and date between '{2}' and '{3}' GROUP BY my_month", name, type, star, end);
DbStatement db = dbc.DbSessionOwa.GetStatement(sql);
return dbc.DbSessionOwa.ExecuteDataTable(db);
}
//每月
public static DataTable SelectMonth(string name, string type, string star, string end)
{
string sql = string.Format("SELECT round(sum(size/1000/1024),2)sums,DATE_FORMAT(date, '%Y-%m')my_month from owa_isa where username='{0}' and client='{1}' and date between '{2}' and '{3}' GROUP BY my_month", name, type, star, end);
DbStatement db = dbc.DbSessionOwa.GetStatement(sql);