oracle:查询创建日期在今天日期之前6个月内的记录

时间:2013-12-04 09:11:09

标签: sql oracle oracle11g oracle10g

如果今天是2013年12月4日,并且我想获得6个月前创建的所有记录,我应该只检索在以下期间创建的记录: - 2013年11月 - 2013年10月 - 2013年9月 - 2013年8月 - 2013年7月 - 2013年6月 我必须按月和年分组计数

我有以下栏目:
ITEMNAME
用户名


CREATEDATE

用户可以多次创建项目或其他项目。 Month和Year列只是从CreateDate中提取的。 我希望按项目名称,月份和年份分别获得每个月(我之前说过的6个月)创建的项目数。

1 个答案:

答案 0 :(得分:1)

试试这个,

SELECT ItemName,    
       UserName, 
       to_char(createdate, 'MM') month, 
       to_char(createdate, 'YYYY') year, 
       count(*) item_count
FROM   tablename
WHERE  createdate BETWEEN ADD_MONTHS(trunc(SYSDATE,'MONTH'), -6) AND LAST_DAY(TRUNC(SYSDATE, 'MONTH') - 1)
GROUP BY ItemName,UserName,to_char(createdate, 'MM'), to_char(createdate, 'YYYY')
ORDER BY month, year;