小弟在线急等 谢谢了
解决方案 »
- 关于oracle9i分区问题
- linux 启动sqlplus 问题
- google calendar 表的设计问题 实现问题?
- 在块中调用过程碰到的问题
- oracle 查询最大值所对应的时间
- 表分区创建后,如何修改分区的范围(范围分区)
- 关于提高多条SQL语句同时查询的问题?
- Oracle支持这个函数吗?substring
- SOS------------------------------------sp_tables-------------------------------------------------SOS
- 一上午都没有结果,关于导入问题
- 怎么样求上一个月同星期几的平均值啊
- 我的问题和这个一样"XDB.DBMS_XSLPROCESSOR"
select avg(col1) from tt
where to_char(datetime,'mmd')=to_char(add_months(sysdate,-1),'mmd')
select avg(col1) from tt
where to_char(datetime,'yyyymmd')=to_char(add_months(sysdate,-1),'yyyymmd')
select last_day(add_months(sysdate,-2)) + rownum as seriesdate from dual
connect by rownum <=last_day(add_months(sysdate,-1)) - last_day(add_months(sysdate,-2))
)
where mod((sysdate-seriesdate),7) = 0;没oracle没法测试,试试吧
FROM Table_name
WHERE TO_CHAR(Date_column,'yyyy-mm-dd')>=TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE)+1,-2),'yyyy-mm-dd') --上月第一天
AND TO_CHAR(Date_column,'yyyy-mm-dd')<=TO_CHAR( LAST_DAY(ADD_MONTHS(LAST_DAY(SYSDATE)+1,-2)),'yyyy-mm-dd') --上月最后一天
AND TO_CHAR(Date_column,'D')=7 --星期六是一周的第7天
GROUP BY TO_CHAR(Date_column,'D');
改一下这个sql select avg(col1) from tt
where to_char(datetime,'yyyymmd')=to_char(add_months(sysdate,-1),'yyyymm')||'7'
可是楼主的意思看起来强调星期六和今天的关系,是想让上个月的星期六和今天这个星期六进行比较吧
所以用了sysdate
where to_char(datetime,'yyyymmd')=to_char(add_months(sysdate,-1),'yyyymmd')
select avg(col1) from tt
where to_char(datetime,'yyyymmd')=to_char(add_months(sysdate,-1),'yyyymm')||to_char(sysdate,'d');
SELECT AVG(COLL) FROM TT
WHERE to_char(gather_date,'DAY') = to_char(sysdate, 'DAY')
and gather_date >= trunc(add_months(sysdate, -1),'mm')
and gather_date < trunc(sysdate,'mm')
这样行不行啊