如何进行跨年度的按周统计

ditouhu 2008-10-09 05:51:33
比如说,今年的最后一周有2天,包含了明年的5天。

以下表为szdj,包括统计字段金额jin,日期型字段riqi。目的是按周统计金额,条件是查询周的值和年的值。把时间now调到1月2日,跨年度的时候周的值还是53,但年的值却变了,这样没法统计那周的值呀

select sum(jin) from szdj where datepart("ww",riqi,2,3)=datepart("ww",now,2,3) and year(riqi)=year(now)
...全文
337 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
喝口水 2008-10-11
  • 打赏
  • 举报
回复
如果求春节是阳历几月几日的话,稍微麻烦些
喝口水 2008-10-11
  • 打赏
  • 举报
回复
如果是阳历的话,那么就取一年的最后一天,即12月31日作为时间值,求得该时间值对应的周一和周日日期值即可
喝口水 2008-10-11
  • 打赏
  • 举报
回复
//这个函数用于求出任意一天的星期一和星期日所对应的日期值
procedure GetWeekStartAndEnd(ADay:TDatetime;var StartDay,EndDay:TDateTime);
begin
StartDay:=ADay-DayOfTheWeek(ADay)+2;//得到星期一
EndDay:=ADay+(8-DayOfTheWeek(ADay));//得到星期日
end;

procedure TForm1.Button1Click(Sender: TObject);
var
a,b:TDateTime;
begin
GetWeekStartAndEnd(date,a,b);
showmessage('周一是:'+datetimetostr(a)+' 周日是:'+datetimetostr(b));
end;
ditouhu 2008-10-11
  • 打赏
  • 举报
回复
有道理,慢慢研究,先结贴了
xiezs 2008-10-10
  • 打赏
  • 举报
回复
帮顶。。。
ditouhu 2008-10-10
  • 打赏
  • 举报
回复
顶上啊
ditouhu 2008-10-10
  • 打赏
  • 举报
回复
谁有好招?
喝口水 2008-10-10
  • 打赏
  • 举报
回复
求出跨年度的周的开始与最后日期值,再写SQL语句
ditouhu 2008-10-10
  • 打赏
  • 举报
回复
每年的最后一周跨度时间长短都不一样呀,我不能输入日期控制的呀。如果要做个周今年统计,能有办法自动识别跨年度的周的开始与最后吗?主要是SQL该怎么写,晕啊
喝口水 2008-10-10
  • 打赏
  • 举报
回复
跨年度的周,不知道你说的是跨春节,还是跨元旦,不管那一天,都可以通过取得跨年底的周的周一到周末的日期值的
喝口水 2008-10-10
  • 打赏
  • 举报
回复
有了周一和周末的日期值,还不能计算出该周的统计金额吗,用下面这个函数可以求出任意一个日期值是星期几
function DayOfWeek(Date: TDateTime): Integer;

描述:
按照给定的TDateTime类型的参数Date,DayOfWeek 函数得到一周中的第几天,从1到7。
这里 星期日 是一周的第一天,而 星期六 是第七天
喝口水 2008-10-10
  • 打赏
  • 举报
回复
那对于任意一个时间,你能求得该时间所在这一周的周一和周五的日期值吗
ditouhu 2008-10-10
  • 打赏
  • 举报
回复
我晕,老大,我要周数干什么。。。。。
我只是想知道如何写代码好能正常统计跨年度的周的一周统计金额。
喝口水 2008-10-10
  • 打赏
  • 举报
回复
你不是要得到任意两个时间值之间的周数吗,上面两个函数就适合你
ditouhu 2008-10-10
  • 打赏
  • 举报
回复
并且能随便查询输入日期的周统计值
ditouhu 2008-10-10
  • 打赏
  • 举报
回复
实在是不明白函数的用法呀,就算得到日期差又有什么用呢?能给个提示吗?

如果要统计这周的金额,adoquery的sql应该怎么写呢?

喝口水 2008-10-10
  • 打赏
  • 举报
回复
有啥不明白的,不是跟你说的清清楚楚的了吗,还能再说啥
ditouhu 2008-10-09
  • 打赏
  • 举报
回复
能给个例子吗?实在是想不明白啊。这个函数下如何sum求和?
喝口水 2008-10-09
  • 打赏
  • 举报
回复
两个函数,你任选其一就可以,不过建议你使用后面那个
ditouhu 2008-10-09
  • 打赏
  • 举报
回复
3楼的方法我硬是没看出来怎么用。。。。
加载更多回复(5)

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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