请教SQL语句写法(100分)

  • 主题发起人 主题发起人 生命如歌
  • 开始时间 开始时间

生命如歌

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个表,包括一个日期时间字段,我想按年月进行分组汇总数据,怎么去掉天数。
请教SQL写法,用的是SQL2000
 
假若表为:d_sale 日期字段为:d_date
可以用一个select语句即可:select * from d_sale where substr(d_date,1,7)='2000-01' ;
 
SELECT CONVERT(CHAR(7),DateTimeField,126),SUM(sumField) AS SumNumber FROM TableName
GROUP BY CONVERT(CHAR(7),DateTimeField,126)
 
如果日期是2001-1-2 年和月就不是7位
 
使用SQL函数 Year(Date),Month(Date)
 
同意楼上onlyonekgx的!
可以使用该函数!
如果是月的话,思路可以这样!
select * from yourTable where Data>=:StartData and Data<=:EndData
然后设置StartData和EndData参数!
按照年的话,可以是 StartData:=year(Data)+'1'+'1';
EndData:=year(Data)+'12'+'31';
如果按照月的话,可以是:
StartData:=year(Data)+month(Data)+1;
EndData:=year(Data)+month(Data)-2;//就是说把你要的月份加1然后把天数减去2天,到上个月的最后一天;
当然,其中的日期,字符和数值都可能不对,所以希望再仔细看一下!
只是思路!注意~~~~
 
select sum(字段) from “表名”
group by year(时间字段)+month(时间字段)

测试通过
 
其实方法很多的,看看帮助吧,上面的方法不错,DATEPART函数也可以.
CONVERT()函数也要以实现.
 
同意楼上onlyonekgx的!
 
to xiaojgu
时间有问题 (年 2000 + 月 2) 和 (年2001 + 月 1) 分组一样了 我想每年的月份
分别统计
 
select year(时间字段),month(时间字段),sum(字段) from “表名”
group by year(时间字段),month(时间字段)
 
select sum(test) from table
group by substring(field1,1,x)
ordery substring(field1,1,x)
field1应该转换成string型
 
搞清楚了,谢谢各位,见者有份
 

Similar threads

回复
0
查看
881
不得闲
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
893
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部