请教一个统计周数据的sql,Access + vb6.0

EmilyOu 2013-07-09 03:54:50
Request表:

Id Type CreateDate
1 类型1 年月日
2 类型2 年月日
3 类型1 年月日
4 类型1 年月日
5 类型2 年月日


我要通过一个时间段,比如2013-06-12----〉2013-07-09来过滤Request。
结果如下:

WeekStart WeekEnd RequstCount
2013-06-12 2013-06-16 这个周的request数量
2013-06-17 2013-06-23 这个周的request数量
2013-06-24 2013-06-30 这个周的request数量
2013-07-01 2013-07-07 这个周的request数量
2013-07-08 2013-07-09 这个周的request数量


感激不尽!Access数据库。。。VB 6.0程序。
...全文
362 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2013-07-10
  • 打赏
  • 举报
回复
LSB:只有1个日期字段 SELECT datepart("ww",CreateDate,2) as bz , min(CreateDate),max(CreateDate),SUM(JS) FROM ( SELECT *,0 AS JS FROM LSB UNION ALL SELECT CreateDate,1 工作表 FROM ) GROUP BY datepart("ww",CreateDate,2)
ACMAIN_CHM 2013-07-09
  • 打赏
  • 举报
回复
可以创建一个辅助表,其中插入所有的 (日期,周数) 然后做LEFT join
WWWWA 2013-07-09
  • 打赏
  • 举报
回复
将UNION ALL->UNION,如果你统计日期的话,加入UNION ALL可以统计(计算)某1 字段的值
EmilyOu 2013-07-09
  • 打赏
  • 举报
回复
这样一来统计出的数据就不对了。
引用 8 楼 EmilyOu 的回复:
[quote=引用 7 楼 wwwwb 的回复:] [quote=引用 4 楼 EmilyOu 的回复:] [quote=引用 2 楼 wwwwb 的回复:] or 生成你指定日期的所有日期,再与工作表连接
不太明白,请指教。 希望查询结果是开始日期到结束日期所有自然周。没有数据也得把前面的周显示出来。 版主求救。[/quote] 比如生成从2013-06-12到2013-07-09所有日期,用表保存,比如LSB SELECT datepart("ww",CreateDate,2) as bz , min(CreateDate),max(CreateDate),count(*) FROM ( SELECT * FROM LSB UNION ALL SELECT CreateDate 工作表 FROM ) GROUP BY datepart("ww",CreateDate,2) [/quote] 如何生成从2013-06-12到2013-07-09所有日期呢?[/quote] 这样一来统计出的数据就不对了。
wwwwb 2013-07-09
  • 打赏
  • 举报
回复
1、用代码生成2013-1-1 到2013-12-31所有日期; 2、用代码生成2013-06-12到2013-07-09所有日期 For Qi = #6/12/2013# To #7/31/2013# CurrentDb.Execute ("insert into lsb1 values(#" & Format(Qi, "yyyy-mm-dd") & "#)") Next
EmilyOu 2013-07-09
  • 打赏
  • 举报
回复
引用 7 楼 wwwwb 的回复:
[quote=引用 4 楼 EmilyOu 的回复:] [quote=引用 2 楼 wwwwb 的回复:] or 生成你指定日期的所有日期,再与工作表连接
不太明白,请指教。 希望查询结果是开始日期到结束日期所有自然周。没有数据也得把前面的周显示出来。 版主求救。[/quote] 比如生成从2013-06-12到2013-07-09所有日期,用表保存,比如LSB SELECT datepart("ww",CreateDate,2) as bz , min(CreateDate),max(CreateDate),count(*) FROM ( SELECT * FROM LSB UNION ALL SELECT CreateDate 工作表 FROM ) GROUP BY datepart("ww",CreateDate,2) [/quote] 如何生成从2013-06-12到2013-07-09所有日期呢?
wwwwb 2013-07-09
  • 打赏
  • 举报
回复
引用 4 楼 EmilyOu 的回复:
[quote=引用 2 楼 wwwwb 的回复:]
or
生成你指定日期的所有日期,再与工作表连接

不太明白,请指教。
希望查询结果是开始日期到结束日期所有自然周。没有数据也得把前面的周显示出来。

版主求救。[/quote]
比如生成从2013-06-12到2013-07-09所有日期,用表保存,比如LSB
SELECT datepart("ww",CreateDate,2) as bz ,
min(CreateDate),max(CreateDate),count(*)
FROM (
SELECT * FROM LSB
UNION ALL
SELECT CreateDate 工作表 FROM )
GROUP BY datepart("ww",CreateDate,2)
EmilyOu 2013-07-09
  • 打赏
  • 举报
回复
引用 5 楼 wwwwb 的回复:
思路是一样的 用datepart("ww",CreateDate,2)求出日期所在星期,再分组 举例说明要求
可以帮些个sql吗? 查询就像主贴上那个样子。输入一个时间段,列出这个时间段包含的所有周和对应的request数量。
wwwwb 2013-07-09
  • 打赏
  • 举报
回复
思路是一样的 用datepart("ww",CreateDate,2)求出日期所在星期,再分组 举例说明要求
EmilyOu 2013-07-09
  • 打赏
  • 举报
回复
引用 2 楼 wwwwb 的回复:
or 生成你指定日期的所有日期,再与工作表连接
不太明白,请指教。 希望查询结果是开始日期到结束日期所有自然周。没有数据也得把前面的周显示出来。 版主求救。
EmilyOu 2013-07-09
  • 打赏
  • 举报
回复
引用 1 楼 wwwwb 的回复:
SELECT datepart("ww",CreateDate,2) as bz , min(CreateDate),max(CreateDate),count(*) from tt group by datepart("ww",CreateDate,2)
这个有那么点意思,但没达到要求。 希望版主再帮忙看看。 这个是根据CreateDate所属的周数来分组。开始结束日期分别为有数据的日期开始和结束。 我希望的结果是,除了第一周的开始,和最后一周的结束需要按照我选择的日期来。 中间部分的周开始和结束,要求和自然周一至。
wwwwb 2013-07-09
  • 打赏
  • 举报
回复
or 生成你指定日期的所有日期,再与工作表连接
wwwwb 2013-07-09
  • 打赏
  • 举报
回复
SELECT datepart("ww",CreateDate,2) as bz , min(CreateDate),max(CreateDate),count(*) from tt group by datepart("ww",CreateDate,2)

7,732

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧