SQL分组问题或者帆软能实现也行

报表需要实现按周进行分组汇总求和,但是客户要求的周为本周二到下周一为一周,而不是常规的周一到周末。所以SQL有没有方法能够实现这种需求上,报表样式如下

image.png

小小萌新 发布于 2022-4-24 09:28
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共6回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-4-24 10:43(编辑于 2022-4-24 10:44)

自己去判断周就行了。。mysql用的是weekday函数。。只是它周一是0  然后星期天是6.。自己判断一下就行了(因为不知道你是什么数据库。。。所以我就用mysql的函数判断的。。)

image.png

按周自定义汇总.rar

最佳回答
0
zsh331Lv8专家互助
发布于2022-4-24 10:13

客户要求的周为「本周二到下周一」为一周,而不是常规的「周一到周末」

-- 新增1个字段-在原日期字段上加1天,用「新字段」做常规周分组不就行了!

——————————————

最佳回答
0
赤贫青年Lv4见习互助
发布于2022-4-24 11:17

必须要完全按照你的Excel格式来吗?你看这样行不行:

【预览效果】

1650769680(1).jpg

【SQL数据集】

1650769755(1).jpg

要求数据必须从"周二"开始

【报表设置】

1650769801(1).jpg

ID、销售时间、星期、销售金额都横向扩展

1650769831(1).jpg

周计和求和公式的父格为A1 皆横向扩展

1650769898(1).jpg

自增ID列的分组条件由"普通"改为"高级",选择"公式分组",输入公式按自增ID每7列进行一次分组

  • 小小萌新 小小萌新(提问者) 谢谢你的这种想法,但是你这种要求必须要周二开始不现实。我的数据是从上月的26日到这个月的25日为一个月,在这个时间范围内要求是每周1结算一次
    2022-04-25 16:39 
最佳回答
0
shixyLv5见习互助
发布于2022-4-24 15:11

用SQLServer模拟测试了一下,大概效果如图,能获取到年度的周,替换字段后group by即可。

SELECT

'2022-03-01' AS "日期字段",

datepart ( wk, '2022-03-01' ) AS "默认一年内的第几周", -- 此时获取的是默认的第几周

datepart ( wk, DATEADD ( dd, -2, '2022-03-01' )) AS "处理后一年内的第几周", --默认是从周日开始计算,如果是周二则往前推两天,算到周日起始

datepart ( weekday, DATEADD ( dd,- 1, '2022-03-01' ) ) AS "星期几" -- 函数是以周日为星期起始,所以减去一天得到正常的范围

image.png

最佳回答
0
shinger@126.comLv2见习互助
发布于2022-4-24 18:12

去建一个日历表,在里面定义好每天的周次,周次年份,星期几这些,做下关联就完事了

最佳回答
0
996433090@qq.coLv6初级互助
发布于2022-4-25 07:06
如有规则,可以用sql表示。 如果没有规则,自定义一个表,设定第x周从日期1-日期2。
  • 6关注人数
  • 531浏览人数
  • 最后回答于:2022-4-25 07:06
    请选择关闭问题的原因
    确定 取消
    返回顶部