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月查询 有需要的话自己改下
select distinct to_char(dt, 'yyyy-mm-dd') as years,to_char(dt, 'iw') as week
from (select (to_date('2013-4-15', 'yyyy-mm-dd') + rownum - 1) dtfrom dual connect by rownum <= to_date('2013-7-15', 'yyyy-mm-dd') -to_date('2013-4-15', 'yyyy-mm-dd'))
group by to_char(dt, 'iw')
ORDER BY years,week
这样试试:
SELECT 起运地,sum(里程之总计),sum(数量之总计),sum(总额之总计)
FROM [TableName] group by 起运地,substring(出发日期,5,2)
你啥数据库啊?
创建测试表
create table test(姓名 varchar2(10),
访问时间 date,
进入时间 date,
离开时间 date);
insert into test values ('张三',to_date('2013-02-03 15:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-03 15:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-03 15:33:22','yyyy-mm-dd hh24:mi:ss'));
insert into test values ('李四',to_date('2013-02-04 15:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-04 18:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-04 18:53:22','yyyy-mm-dd hh24:mi:ss'));
insert into test values ('王武',to_date('2013-02-04 15:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-05 17:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-05 18:23:22','yyyy-mm-dd hh24:mi:ss'));
insert into test values ('张三',to_date('2013-02-04 15:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-06 11:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-06 14:23:22','yyyy-mm-dd hh24:mi:ss'));
运行
select 姓名,to_char(访问时间,'yyyy-mm') 访问月份,
to_char(trunc(round(sum(离开时间-进入时间)1440)/60))||'小时'||to_char(round(sum((离开时间-进入时间)1440))-trunc(round(sum(离开时间-进入时间)1440)/60)60)||'分钟' 时间汇总,
count() 访问次数 from test
group by 姓名,to_char(访问时间,'yyyy-mm');
结果
SELECT ROWNUM AS RN FROM DUAL CONNECT BY ROWNUM <= 12
以上是oracle的写法。sql server可以用row_number() over(order by XXX)也可实现。
可以用上述虚拟列出的表格数据,与你的语句进行左连接,NVL空值设置为0即可。
你的WHERE语句没有问题。如果要用GROUP BY优化的话,可能需要用到复杂的数据库分析函数,这些分析函数用起来也比较费劲啊。。。
以上就是关于SQL按月统计,按日分组全部的内容,包括:SQL按月统计,按日分组、Oracle里面如何让一段日期按周、月、季度、年分组显示啊求高手赐教,贴出正确sql追加高分!、group by按月分组统计(SQL)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)