SQL按月统计,按日分组 80

想要统计一个表里(如:表a,表内有交易时间、交易量两个字段)上月26日至本月25日,每日的交易量。每日的统计时间是:前一日14:30:01至当日14:30:00。比如:要... 想要统计一个表里(如:表a,表内有交易时间、交易量两个字段)上月26日至本月25日,每日的交易量。每日的统计时间是:前一日14:30:01至当日14:30:00。比如:要统计6月份每天的交易量,统计的时间就是5月26日至6月25日每天的交易量。而5月26日的数据统计的起始时间是5月25日14:30:01,结束时间是5月26日14:30:00。5月27日的数据统计时间是5月26日14:30:01至5月27日17:30:00,以此类推,6月25日的数据统计时间是6月24日14:30:01至6月25日14:30:00。望高手们不吝赐教。这个东西要常用,最好能设计的可以按指定月份来查询,如先询问要查询哪个月,然后根据输入的数字来查询对应月份的交易量。
已通过QQ群里的朋友得到解决办法。谢谢楼下的朋友。

SELECT DISTINCT CONVERT(VARCHAR(20),JCSJ,23)+' 14:30:00.000' AS datetime1,
CONVERT(VARCHAR(20),DATEADD(DAY,1,JCSJ),23)+' 14:30:00.000' AS datetime2
INTO #table
FROM dbo.T_jcxxdj_a
WHERE JCSJ BETWEEN '2008-06-25 14:30:00.000' AND '2008-07-25 14:30:00.000'
ORDER BY datetime1

SELECT b.datetime1,b.datetime2,sum(a.jfje)AS 金额
FROM dbo.T_jcxxdj_a a, #table b
WHERE a.JCSJ>=b.datetime1 AND a.JCSJ<b.datetime2
GROUP BY b.datetime1,b.datetime2

DROP TABLE #table
GO
展开
 我来答
gaozcai05
2009-06-05 · TA获得超过103个赞
知道答主
回答量:79
采纳率:0%
帮助的人:40.3万
展开全部
declare @yf int
declare @rqxx varchar (30)
declare @rqsx varchar (30)
set @yf = '' --输入月份
set @rqxx =convert(varchar(30),@yf-1)+'月'+'26日'+'14:30:00'
set @rqxx =convert(varchar(30),@yf)+'月'+'25日'+'14:30:00'
select sum(交易量) from a where 交易时间 between @rqxx and @rqsx
这个只是个思路
上面我把@rqxx,@rqsx 定义为 varchar 你在具体定义时 要和a中交易时间一致,时间格式也要改 而且这个月份只能实现 2月--12月查询 有需要的话自己改下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式