Foxtable(狐表)用户栏目专家坐堂 → 本月与往月统计表问题


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

主题:本月与往月统计表问题

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


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
本月与往月统计表问题  发帖心情 Post By:2012/7/4 2:17:00 [只看该作者]

原始表如图:
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20120704020446.png
图片点击可在新窗口打开查看

 

假设本月是4月,我现在想得到这样的统计表:


 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20120704020518.png
图片点击可在新窗口打开查看

 

按"姓名"和"超产奖"分组,统计本月以前的"次数","金额"合计及本月的的"次数","金额"合计

 

这个分组统计表该怎么实现?

[此贴子已经被作者于2012-7-4 2:19:00编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/7/4 8:20:00 [只看该作者]

呵呵,你这两个表都设计好了,何不直接发上来?

否则别人想帮你,还得先设计表,输入测试数据。

尽量方便想帮助你的人,这样才能更快地得到贴心的回复。

 

不过可以先看看:

http://www.foxtable.com/help/topics/0681.htm

 

搞不定,就传文件上来吧,我帮你设置一下。

 

 

 

[此贴子已经被作者于2012-7-4 8:26:10编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2012/7/4 10:39:00 [只看该作者]

晕 忘记发附件了,先谢谢狐狸爸爸了,我也知道要手工编码,但是没搞懂,我再试试,不行再呼救


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2012/7/4 10:54:00 [只看该作者]

select 姓名,超產獎,sum(iif(月份<Month(Now()),次數,0)) As  累計本月以前_次數,sum(iif(月份 <Month(Now()),金額,0)) As 累計本月以前_金額, sum(iif(月份=Month(Now()),次數,0)) As 本月_次數 ,sum(iif(月份=Month(Now()),金額,0)) As 本月_金額  From{表A} GrouP by 姓名,超產獎  UNION select 姓名 &  '小計' as  姓名,''  as  超產獎,sum(iif(月份<Month(Now()),次數,0)) As  累計本月以前_次數,sum(iif(月份 <Month(Now()),金額,0)) As 累計本月以前_金額, sum(iif(月份=Month(Now()),次數,0)) As 本月_次數 ,sum(iif(月份=Month(Now()),金額,0)) As 本月_金額  From{表A} GrouP by 姓名  &  '小計'

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


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2012/7/4 11:55:00 [只看该作者]

搞定了,就是设置分组条件,把搞好的表发上来,给需要的筒子参考

Dim dr As DataRow = e.DataRow
Dim dt As DataTable =DataTables("表A")
If e.DataCol.Name = "姓名" And dr.IsNull("姓名") = False Then
    dr("累计4月以前_次数") = dt.Compute("sum(次数)", "[月份] < 4 And [姓名] = '" & dr("姓名") & "' AND [超产奖] =" &dr("超产奖")  )
    dr("累计4月以前_金额") = dt.Compute("SUM(金额)", "[月份] < 4 and [姓名] = '" & dr("姓名") & "' AND [超产奖] =" &dr("超产奖")  )
    dr("当前4月_次数") = dt.Compute("SUM(次数)",  "[月份] = 4 and [姓名] = '" & dr("姓名") & "' AND [超产奖] =" &dr("超产奖")  )
    dr("当前4月_金额") = dt.Compute("SUM(金额)",  "[月份] = 4 and [姓名] = '" & dr("姓名") & "' AND [超产奖] =" &dr("超产奖")  )
End If

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3_0704.zip

 

Don 的SQL语句太厉害了,我研究研究,不懂再请教大神


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


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2012/7/4 13:23:00 [只看该作者]

金额 是表达式列,用Don的sql语句老出错,修改后如下:

select 姓名,超产奖,sum(iif(月份<4,次数,0)) As  累计4月以前_次数,sum(iif(月份<4,次数*超产奖,0)) As 累计4月以前_金额, sum(iif(月份=4,次数,0)) As 当前4月_次数 ,sum(iif(月份=4,次数*超产奖,0)) As 当前4月_金额  From {表A} GrouP by 姓名,超产奖

一条SQL语句就搞定了,效果非常好


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/7/4 14:18:00 [只看该作者]

呵呵,don的SQL太牛了,我也学习了。

 

图片点击可在新窗口打开查看


 回到顶部