sql查询指定月份之前的几个月
表名:[销售]字段:[名称],[日期],[金额],[数量]要查指定月份(含指定月份)之前3个月的销售总金额.例如指定2010年8月想得到之前三个月(2010年8月,201...
表名:[销售]
字段:[名称],[日期],[金额],[数量]
要查指定月份(含指定月份)之前3个月的销售总金额.
例如指定2010年8月
想得到之前三个月(2010年8月,2010年7月,2010年6月)的sum([金额]),怎样写?
重复一次,比如我输入1999-5,也就是要得到 1999-3-01 00:01 到 1999-5-31 59:59 这三个共销售总金额.请注意月份开始和结束时间是要整整一个月.SQL语句要怎样写?谢谢! 展开
字段:[名称],[日期],[金额],[数量]
要查指定月份(含指定月份)之前3个月的销售总金额.
例如指定2010年8月
想得到之前三个月(2010年8月,2010年7月,2010年6月)的sum([金额]),怎样写?
重复一次,比如我输入1999-5,也就是要得到 1999-3-01 00:01 到 1999-5-31 59:59 这三个共销售总金额.请注意月份开始和结束时间是要整整一个月.SQL语句要怎样写?谢谢! 展开
展开全部
1、创建测试表,
create table test_date(id varchar2(20), v_date date);
2、插入肢梁测试数据
insert into test_date values(1, sysdate-30);
insert into test_date values(2, sysdate-40);
insert into test_date values(3, sysdate-60);
insert into test_date values(4, sysdate-80);
insert into test_date values(5, sysdate-90);
commit;
3、查询表中全量数据,select t.*, rowid from test_date t;
4、孝饥埋编写sql,查询巧蚂指定月份之前的几个月;例如,查询当前时间前两个月的数据;
select t.* from test_date t where to_char(v_date,'yyyymm') = to_char(add_months(sysdate,-2), 'yyyymm');
展开全部
这个侍纳需要老亏没数据库的日期函数支持。
如果是sqlserver的话语句如下:
SELECT SUM(金额) AS 汇总金额
FROM 销售
WHERE (日期 < DATEADD(month, 1, '1999-5-1')) AND (日期 > DATEADD(month, - 2,
'1999-5-1'))
在程序里将两个地方的1999-5-1替换为你指定的月份的1号即可。
别的数据库空友可参考数据库日期函数
如果是sqlserver的话语句如下:
SELECT SUM(金额) AS 汇总金额
FROM 销售
WHERE (日期 < DATEADD(month, 1, '1999-5-1')) AND (日期 > DATEADD(month, - 2,
'1999-5-1'))
在程序里将两个地方的1999-5-1替换为你指定的月份的1号即可。
别的数据库空友可参考数据库日期函数
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设:字符串格芹腊式为:此枯'1999-5'
select sum(金额) as 总金额 from 销售 where 日期 between dateadd(m,-3,'嫌扒滑1999-5'+'-1') and dateadd(ms,-1,'1999-5'+'-1')
需要按【名称】分类统计后面加:
group by 名称
说明:上面的dateadd(ms,-1,'1999-5'+'-1')
是1999-5-1减去1毫秒
select sum(金额) as 总金额 from 销售 where 日期 between dateadd(m,-3,'嫌扒滑1999-5'+'-1') and dateadd(ms,-1,'1999-5'+'-1')
需要按【名称】分类统计后面加:
group by 名称
说明:上面的dateadd(ms,-1,'1999-5'+'-1')
是1999-5-1减去1毫秒
追问
按您的程序,我输入 1999-5,但这个5月本身不能显示数据呢!
我要的是 1999-03-1 至 199-5-31 这三个月的总金额,但您的程序只显示了3月和4月
追答
你的不是SQL Server吧?
select sum(金额) as 总金额 from 销售 where 日期 between dateadd(mm,-3,'1999-5'+'-1 00:00:00') and dateadd(ms,-1,'1999-5'+'-1 00:00:00')
再试试
建议,先用
select * from 销售 where 日期 between dateadd(mm,-3,'1999-5'+'-1 00:00:00') and dateadd(ms,-1,'1999-5'+'-1 00:00:00')
试试数据是否正确,再改成sum
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT SUM(金额梁腊蔽) AS 汇总金额橡州
FROM (SELECT 金额,conver('yyyymm',@date) as mdate FROM 销售
WHERE (日局物期 < DATEADD(month, 1, @date)) AND (日期 > DATEADD(month, - 2,
@date))) group by mdate
FROM (SELECT 金额,conver('yyyymm',@date) as mdate FROM 销售
WHERE (日局物期 < DATEADD(month, 1, @date)) AND (日期 > DATEADD(month, - 2,
@date))) group by mdate
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先要看你的月份是什么格式了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询