我要统计每周的数据

zxmmiao 2007-01-08 10:49:01
我要从起始时间开始统计每周的数据直至终止时间

比如
我想统计从2006-4-3到2006-12-30这段时间内,aa表中字段d 每周的数据,
请问sQL语句怎么写啊
...全文
308 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxmmiao 2007-01-09
  • 打赏
  • 举报
回复
哦,好的, 谢谢了,现在结帖了
lj985 2007-01-09
  • 打赏
  • 举报
回复
这里到处都是高手,要是需要我帮你的话可以发站内短信给我
zxmmiao 2007-01-09
  • 打赏
  • 举报
回复
谢谢 lj985,请问你的QQ是多少啊,我能加你吗?
lj985 2007-01-09
  • 打赏
  • 举报
回复
idate="2006-07-15" '初始日期
iidate="2006-08-02" '结束日期
i=1
response.write "<table border=1 cellpadding=3 cellspacing=0 bordercolordark=#FFFFFF bordercolorlight=#CCCCCC><tr>"
do while datediff("d",idate,iidate)>=0
iiidate=dateadd("ww",1,idate)
i=i+1
sql="select sum(d)as xxx from aa where cast(日期字段 as smalldatetime) between '"&idate&"' and '"&iiidate&"'"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
xx="<td width=150>第"&i&"周"&rs("xxx")&"</td>"
rs.close
response.write xx
idate=iiidate
loop
response.write "</tr></table>"

zxmmiao 2007-01-09
  • 打赏
  • 举报
回复
楼上的非常感谢。

在请问,如何显示第几周,从开始的时间算第一周,依次排出来,第一周,第二周,
lj985 2007-01-09
  • 打赏
  • 举报
回复
idate="2006-07-15" '初始日期
iidate="2006-08-02" '结束日期
——————————————————————————————
response.write "<table border=1 cellpadding=3 cellspacing=0 bordercolordark=#FFFFFF bordercolorlight=#CCCCCC><tr>"
——————————————————————————————
do while datediff("d",idate,iidate)>=0
iiidate=dateadd("ww",1,idate)
sql="select sum(d)as xxx from aa where cast(日期字段 as smalldatetime) between '"&idate&"' and '"&iiidate&"'"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
——————————————————————————————
xx="<td width=150>"&rs("xxx")&"</td>"
——————————————————————————
rs.close
response.write xx
idate=iiidate
loop
________________________________________________
response.write "</tr></table>"


擒兽 2007-01-09
  • 打赏
  • 举报
回复
如果你要横向显示,最好借助临时表。
用存储过程分别统计出数据写入临时表,到时候直接读取出来就好。

有时候年份不同,周数也不同,可能今年多一周明年少一周。一般不会超过54还是5n周。

上面是多年
-----------------------------

如果是同一年,就用上面我说的方法统计出来,你显示的时候循环不换行就可以了,或者循环TD。
擒兽 2007-01-09
  • 打赏
  • 举报
回复
SELECT
DATEPART(WEEK,[时间字段]) AS '第几周',
COUNT(*) AS '数量'
FROM [数据表]
WHERE DATEPART(YEAR,[时间字段])=2005 /*这里要注意年份,避免不同年份同周的数据聚合在一起*/
GROUP BY DATEPART(WEEK,[时间字段])
ORDER BY DATEPART(WEEK,[时间字段])
zxmmiao 2007-01-09
  • 打赏
  • 举报
回复
请问,楼上的,我如何让他横行显示
zxmmiao 2007-01-08
  • 打赏
  • 举报
回复
select DATEPART(week,Create_Date) as intWeek from table
where date between '2006-4-3' and '2006-12-30'

我现在这样写,怎么显示不出,intweek啊,
我输出rs("intweek")不显示啊
zxmmiao 2007-01-08
  • 打赏
  • 举报
回复
哪个a,是什么
zxmmiao 2007-01-08
  • 打赏
  • 举报
回复
谢谢,我看看啊
whb147 2007-01-08
  • 打赏
  • 举报
回复
不知道group by 是否直接支持函数
group by DATEPART(week,Create_Date)
呵呵,没有去测试了
你自己看着办吧
whb147 2007-01-08
  • 打赏
  • 举报
回复
select Name,intWeek,sum(Number) as QTY from (
select Name,Number,DATEPART(week,Create_Date) as intWeek from table
where date between '2006-4-3' and '2006-12-30'
) a
group by Name,intWeek
whb147 2007-01-08
  • 打赏
  • 举报
回复
select DATEPART(week,'2006-12-1')
返回是第48周
whb147 2007-01-08
  • 打赏
  • 举报
回复
先把周算出来,
然后用分组就可以了
zxmmiao 2007-01-08
  • 打赏
  • 举报
回复
这样统计出来的是每周的吗
cow8063 2007-01-08
  • 打赏
  • 举报
回复
select sum(XX) as V from AA where date between '2006-4-3' and '2006-12-30'
lj985 2007-01-08
  • 打赏
  • 举报
回复
idate="2006-07-15" '初始日期
iidate="2006-08-02" '结束日期
do while datediff("d",idate,iidate)>=0
iiidate=dateadd("ww",1,idate)
sql="select sum(d)as xxx from aa where cast(日期字段 as smalldatetime) between '"&idate&"' and '"&iiidate&"'"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
xx=rs("xxx")&"|||<br>"
rs.close
response.write xx
idate=iiidate
loop

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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