三九宝宝网宝宝百科宝宝知识

sql从日期中提取年份按年份求和

01月04日 编辑 39baobao.com

[公共英语等级考试的要求和报考时间]公共英语上半年报名时间将会在年前的12月陆续出来,下半年的报名时间将会在七八月份出来, 报考条件PETS在考生资格方面,除中小学生外,无年龄、职业以及受教育程度的限制,原则上任...+阅读

思路:先准备好整个时间段的月份,然后关联统计就行了;

--mssql:

WITH TMP AS

(SELECT '1994-1-1' AS BEGAN_DATE, '1994-12-1' AS END_DATE, 100.00 AS JS,

1200.00 AS ZJS

UNION ALL

SELECT '1995-1-1', '1995-5-1', 100.00, 500.00

UNION ALL

SELECT '1995-6-1', '1998-3-1', 100.00, 34000.00

)

,TMP1 AS (SELECT DATEADD(MONTH, T.NUMBER, T1.BEGAN_DATE) AS T_MONTH

FROM MASTER .. SPT_VALUES T,

(SELECT MIN(BEGAN_DATE) AS BEGAN_DATE,

DATEDIFF(MONTH, MIN(BEGAN_DATE), MAX(END_DATE)) AS T_MONTH

FROM TMP) T1

WHERE T.NUMBER <= T1.T_MONTH AND

T.TYPE = 'P')

SELECT DATENAME(YEAR, T1.T_MONTH) AS YEARS, SUM(T.JS) AS ZJS

FROM TMP T

INNER JOIN TMP1 T1

ON T1.T_MONTH >= CAST(T.BEGAN_DATE AS DATE) AND

T1.T_MONTH <= CAST(T.END_DATE AS DATE)

GROUP BY DATENAME(YEAR, T1.T_MONTH), T.BEGAN_DATE

ORDER BY DATENAME(YEAR, T1.T_MONTH);

--oracle :

WITH TMP AS

(SELECT '1994-1-1' AS BEGAN_DATE, '1994-12-1' AS END_DATE, 100.00 AS JS,

1200.00 AS ZJS

FROM DUAL

UNION ALL

SELECT '1995-1-1', '1995-5-1', 100.00, 500.00

FROM DUAL

UNION ALL

SELECT '1995-6-1', '1998-3-1', 100.00, 34000.00

FROM DUAL),

TMP1 AS

(SELECT ADD_MONTHS(BEGAN_DATE, LEVEL - 1) T_MONTH

FROM (SELECT TO_DATE(MIN(BEGAN_DATE), 'YYYY-MM-DD') BEGAN_DATE,

TO_DATE(MAX(END_DATE), 'YYYY-MM-DD') END_DATE

FROM TMP)

CONNECT BY LEVEL <= MONTHS_BETWEEN(END_DATE, BEGAN_DATE) + 1)

SELECT TO_CHAR(T_MONTH, 'YYYY') AS YEARS, SUM(T.JS) AS ZJS

FROM TMP T

INNER JOIN TMP1 T1

ON T1.T_MONTH >= TO_DATE(T.BEGAN_DATE, 'YYYY-MM-DD') AND

T1.T_MONTH <= TO_DATE(T.END_DATE, 'YYYY-MM-DD')

GROUP BY TO_CHAR(T_MONTH, 'YYYY'), T.BEGAN_DATE

ORDER BY TO_CHAR(T_MONTH, 'YYYY')

以下为关联文档:

用access2003想从不同年份的 mdb格式的文件里筛选出同一个公司的譬如说,该公司有20 10、20 11、2012三个年份的三个 md格式的文件。 1、分次打开20 10、20 11、2012的文件的表,每次打开后筛选出这个公司的记录(别说不会筛选哦),每次筛选出的表...

自动机械手表怎么调整显示的年份和日期左手手持手表,表盘正面面向自己,12点位置朝上,右手旋转表冠,表冠需拔出,拔出分为两档(请注意力度)。一档(稍微拔出):大拇指向上旋转表冠(顺时针)---调整日历 大拇指向下旋转表冠(逆时针)--...

要2000年到2014年所有的动漫标明年份和动漫可以复制但一定2000年幻影死神女神候补生六门天外月影兰风云爆弹娘爆裂战士混沌小魔女外星BB撞地球怪兽农场2数码宝贝2捍卫者向阳之树银装骑兵队咕噜咕噜魔法阵2最游记变形金刚-伪装机人网...

请教:excel表格求和错误怎么回事根据问题描述可以看到,Excel表格中的单元格f6是文本格式,求和函数对于文本格式是直接忽略的,所以会出现求和错误的现象,如何修改以及如何正确的使用函数,可以参照下方步骤。 1、...

怎么用excel按照年份将B列和D列做一个对比柱形图新建excel文档,导入所用数据。 以图中的数据,我们将第一行的数据作为X轴数据,后两行数据作为Y轴数据。 先将数据画成散点图。 选择数据,在“插入”栏中选“散点图”,画散点图时...

C语言程序设计谁可以帮我设计一个桌面日历1按照输入的年份来个总的,分月的就是在加上一个判断函数。 同意楼上的,总问别人是不会提高的。 #include /********************************* days:计算与标准日期之间的天数差值 ***********...

各国体检要求和标准是什么当时指定的出国留学人员健康检查标准非常具体,规定十几种情况不能选派,包括活动期肺结核,活动性肺外结核、做过胸廓成型术和一叶以上肺切除、严重的慢性病、器质性心脏病及高血...

excel求和 excel求和详细教程快速方式:把需要求和的数据用鼠标都选中(选的时候按ctrl),何在excel的状态篮(最下方) 函数方式:在一个空白的单元格输入“=sum()",括号里就把需要求和的都选中回车即可 或者在连续的要...

java如何将日期年份相减import java.text.Format; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Admin { private static Format f = new...

推荐阅读
图文推荐