sql server 中取出今年和去年每个月的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 中取出今年和去年每个月的数据相关的知识,希望对你有一定的参考价值。
sql server 中取出今年和去年每个月的数据,形成:
month date1 date2
1月:2014年1月的数据,2013年1月的数据;
2月:2014年2月的数据,2013年2月的数据;
..........
注释:今年和去年某个月的数据可能不存在。
会有:今年有、去年没有;今年没有、去年有;今年、去年都没有的情况。
请注意:我要取的是今年、去年的数据,这些数据应该是同一字段的。
order by month追问
我要显示每个月的数据,即使当月,今年、去年的数据不存在,我也要显示。
也就是说明,数据库中,这个没有去年、今年数据的月份month是没有的。
那么Order by也就少了相印的月份了吧
(case when date1 then date1 else 'no Data' end ) as Data2014,
month
from table
order by month追问
你的回答让我思路有点清晰啦,
不过,有一个问题,我说的是2014年的数据、2013年的数据。
明显是一个字段的不同年份,而你给我的是不同字段的,也没有限制年份。
你给的结构就是不同字段的呀,如果有同一个字段,思路也是一样的
from table
group by date
order by date,month
楼主给分吧~追问
大哥,你没有按照我问的问题给我明确的答案啊。
我要的是每个月一个字段:2014年的数据、2013的数据,
你给我的答案是,每个月每年、字段1、2的所有数据,
把难点:确定年份同一字段给避过了,我怎么给你分啊。
拜托!
能给我写下么??
可以加100分的哟!!!
举个栗子说清楚你的意思,被你搞蒙了,不知所云啊。。
追问比如:我有一个数据 金额:rmb,我要取出物品:A,在今年、去年中每个月的金额rmb。
难点在于,每个月 1,2,3,4,5,6,7,8,9,10,11,12不论在这两年是否有都要出现。今年、去年都没有的情况会导致order by month的时候出现少月份的情况。
不能追加分了····
是问你的数据表是什么结构。。
男子汉大丈夫怎能出尔反尔。。。
这个真心不是我出尔反尔,悬赏最高分才知道是200分·····骗你小狗!!!
rmb 金额
odate 生效日期
month 月份
thing 货物
现在可是很认真去回答了,你参考下
set @data2013 = select * from table where odate='2013';
set @data2014 = select * from table where odate='2014';
create table #results=(
id int,
rmb2013 int,
rmb2014 int
);
while(@idx<13)
begin
insert into #results (idx,
select case when rmb then rmb else ' ' endfrom @data2013,
select case when rmb then rmb else ' ' endfrom @data2014
)
set @idx = @idx + 1
end 参考技术A 你完全可以提供一个年份,依次查询某年某个月的数据,把对应的年份、月份、还有数据都放到一个List里啊。
SQL语句。表里面都是去年的数据。现在要统计以前每一天跟每一个月的数据的总数。SQL语句怎么写。
--每天数据量select convert(char(8),date,112) 年月日,COUNT() ROW_COUNT
FROM TableName
group by convert(char(8),date,112)
--每月数据量
select convert(char(6),date,112) 年月,COUNT(*) ROW_COUNT
FROM TableName
group by convert(char(6),date,112)
--如果只有一年,每月数据量也可以如下:
select MONTH(date) 月,COUNT(*) ROW_COUNT
FROM TableName
group by MONTH(date)追问
比如表里面有2010年8,9,10月份的数据。那怎么统计每天跟每月的数据的总数啊。能具体点吗。
追答时间字段的格式是什么样子的?一个datetime类型的字段?
参考技术A --每天数据量select convert(char(8),date,112) 年月日,COUNT() ROW_COUNT
FROM TableName
group by convert(char(8),date,112)
每月数据量
select convert(char(6),date,112) 年月,COUNT(*) ROW_COUNT
FROM TableName
group by convert(char(6),date,112)追问
比如表里面有2010年8,9,10月份的数据。那怎么统计每天跟每月的数据的总数啊。能具体点吗。
以上是关于sql server 中取出今年和去年每个月的数据的主要内容,如果未能解决你的问题,请参考以下文章
获取每个月的第一个日期 SQL Server 2008 R2
sql 今年和去年的SQL YTD。此查询可确保去年的值仅上升到当天的整个年份