Foxtable(狐表)用户栏目专家坐堂 → 从统计表中,获取需要的统计行


  共有1654人关注过本帖树形打印复制链接

主题:从统计表中,获取需要的统计行

帅哥哟,离线,有人找我吗?
qwz405
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:522 积分:5033 威望:0 精华:0 注册:2015/4/15 15:25:00
从统计表中,获取需要的统计行  发帖心情 Post By:2017/6/12 13:46:00 [只看该作者]

老师,您好。
我要获取月打卡数量最多的几个人,请老师给个方法。

我现在的思路是先分组统计,再取TOP *值,但是统计表是不能用select获取的,所以行不通。


图片点击可在新窗口打开查看此主题相关图片如下:111.jpg
图片点击可在新窗口打开查看

先用分组统计,获取下面的统计表:
再取前2名:----(此处行不通)
 S elect  T O P 2 * FR O M {统计表1} ORDER BY 打卡次数 D e sc

图片点击可在新窗口打开查看此主题相关图片如下:222.jpg
图片点击可在新窗口打开查看



[此贴子已经被作者于2017/6/12 13:51:01编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/12 14:12:00 [只看该作者]

参考代码

 

select top 2 第一列, count(*) as 打卡次数 from {表A} group by 第一列 order by count(*) desc


 回到顶部
帅哥哟,离线,有人找我吗?
qwz405
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:522 积分:5033 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2017/6/12 16:36:00 [只看该作者]

老师,如果要将获得的统计表用图表显示出来,代码要怎么写?

msgbox(2) --> msgbox(3)错误:未将对象引用设置到对象的实例。

    'Dim Chart As WinForm.Chart '定义一个图表变量
    Dim Chart As New ChartBuilder
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    Dim t As Table = Tables("统计表1") '定义一个变量t引用数据表
    'Chart= e.Form.Controls("Chart1") ' 引用窗口中的图表
    'Chart.SeriesList.Clear() '清除图表原来的图系
    Chart.PrintWidth = 140
    Chart.PrintHeight = 100
    Chart.VisualEffect = True
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = t.Rows.Count '图系的数据点数等于表的行数
    Msgbox(1)
    For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置
        Msgbox(2)
        Series.X(i) = t.Rows(i)("姓名") '指定水平坐标
        Series.Y(i) = t.Rows(i)("打卡次数") '指定垂直坐标
        Msgbox(3)
    Next
    
    Msgbox(4)
    wb.AddPageTitle("","ph1","FoxUI")
    Msgbox(5)
    wb.InsertHTML("<img width='100%' src='" & wb.ImageToBase64(Chart.Image) &  "'/>")



图片点击可在新窗口打开查看此主题相关图片如下:222.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/12 16:44:00 [只看该作者]

    For i As Integer = 0 To t.Rows.Count - 1 '指定每个数据点的位置
        Msgbox(2)
        Series.X(i) = i'指定水平坐标
        Series.Y(i) = val(t.Rows(i)("打卡次数")) '指定垂直坐标
        Chart.AxisX.SetValueLabel(i, t.Rows(i)("姓名")) '指定字符表示
    Next
    Chart.AxisX.AnnoWithLabels = True '启用字符标示

 

http://www.foxtable.com/webhelp/scr/0968.htm

 


 回到顶部