我做的是一个类似报表查询的程序,前台用的flex,后台用的java,db是oracle。框架什么的写好了,现在经理的需求是根据输入的时间进行查询。其中输入时间年月日是三选一的,比如,我选择2010年至2011年,日期就不用选了,同理,我选择月,即为输入时间为2011年4月至2011年5月,点击查询在一张datagrid表里面显示出来,显示的数据包含选择的时间区间里的时间,以及求和的数据。如何写select语句进行求和,而且是分时间求和,比如选择只输入年份,查询2011年的数据,就在datagrid里面列出每个月的数据,一列日期,一列sum的数据。求各位大神帮帮小弟,小弟菜鸟
按照长度来算似乎不行吧
FROM DUAL
GROUP BY to_char(sysdate, 'YYYYMM')
在用户查询时就需要判断出用户选择的是年月日的哪种类型的查询,然后再生成相应的时间条件去查询!
select to_char(date_columnName , 'YYYYMM') 月份,sum(列)
FROM TableName
where date_columnName >= to_date(date_From,'YYYYMM')
and date_columnName < to_date(date_To,'YYYYMM')
GROUP BY to_char(date_columnName , 'YYYYMM');