Foxtable(狐表)用户栏目专家坐堂 → 每个门店统计金额的前30名


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

主题:每个门店统计金额的前30名

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
每个门店统计金额的前30名  发帖心情 Post By:2018/1/24 14:35:00 [显示全部帖子]

老师,想要每个门店前30个会员的统计金额,比如有2个店,那就应该有2个30,就是60行。我现在是不管多少店,都只有30行
我如下做的是所有门店的前30名会员的统计金额

要怎么写呢?

SELEC T top 30
dbo.[销售明细].[门店],
dbo.[销售明细].[会员卡号],
sum(dbo.[销售明细].[销售金额]) as 金额

FROM
dbo.[销售明细]
WHERE
dbo.[销售明细].会员卡号 <> '' 
GROUP BY
dbo.[销售明细].[会员卡号],
dbo.[销售明细].[门店]
ORDER BY
[金额] DESC


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

[此贴子已经被作者于2018/1/24 15:10:56编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/1/24 15:24:00 [显示全部帖子]

或者用 SQLGroupTableBuilder  要怎么写呢。。。


    Dim b1 As New SQLGroupTableBuilder("统计表1","销售明细")

    Dim dt1 As fxDataSource

    b1.C    

b1.Groups.AddDef("门店"

b1.Groups.AddDef("会员卡号"
b1
.Totals.AddDef("销售金额","金额")

        b1.CommandTimeOut = 600

        dt1 = b1.BuildDataSource()




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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2018/1/24 17:00:00 [显示全部帖子]

解决了。原来是我多了会员卡号的分组。那自然都是1了。

恩恩,谢谢甜老师。
我这样写可以出来明细的排名,但是我要先按门店和卡号分组统计求和后再排名:
SELEC T 门店,会员卡号,销售金额,ROW_NUMBER() over(partition by 门店,会员卡号 order by 销售金额 desc) as rowNum
from 销售明细

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

所以我加了sum函数,却没有排名了:
SELEC T *,ROW_NUMBER() over(partition by a.门店,a.会员卡号 order by a.金额 desc) as rowNum from 
(
SELEC T 门店,会员卡号,sum(销售金额) as 金额 from 销售明细 GROUP BY 销售明细.门店,销售明细.会员卡号 
) as a

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



[此贴子已经被作者于2018/1/24 17:07:27编辑过]

 回到顶部