以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  用周分组后,如何再用 单号分组,统计所有单中的最大金额  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85645)

--  作者:fubblyc
--  发布时间:2016/5/30 23:34:00
--  用周分组后,如何再用 单号分组,统计所有单中的最大金额

各位大神,遇到一个问题:

要统计员工一周中的最大的一单的金额。已经用 年月周 分组,

不知道怎么用单号分组。

如图:

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

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

 

 代码:

SELEC T
cast(datename(year,a.[业务日期])as int) AS [年份],
cast(datename(month,a.[业务日期])as int) AS [月份],
cast(datename(week,a.[业务日期])as int) AS [周次],
a.[营业员姓名],
sum(a.[销售额]) as 本周销售额 ,
max([销售额]) as 周大单金额        \' 有问题,这里统计的是单件中的最大金额,而需要的是包含几件的一单的最大金额

FROM
dbo.worksheet as a
GROUP BY
cast(datename(year,a.[业务日期])as int) ,
cast(datename(month,a.[业务日期])as int) ,
cast(datename(week,a.[业务日期])as int) ,
a.[营业员姓名]


--  作者:Hyphen
--  发布时间:2016/5/31 8:45:00
--  
试试

sel ect b.[年份],b.[月份],b.[周次],b.[营业员姓名],MAX(b.[本周销售额])
from
(SELEC T 
cast(datename(year,a.[业务日期])as int) AS [年份],
cast(datename(month,a.[业务日期])as int) AS [月份],
cast(datename(week,a.[业务日期])as int) AS [周次],
a.[营业员姓名],
sum(a.[销售额]) as 本周销售额 ,
a.[单号]
FROM
dbo.worksheet as a
GROUP BY
cast(datename(year,a.[业务日期])as int) ,
cast(datename(month,a.[业务日期])as int) ,
cast(datename(week,a.[业务日期])as int) ,
a.[营业员姓名],
a.[单号]) as b
group by  b.[年份],b.[月份],b.[周次],b.[营业员姓名]