(O管理)s精华

上传人:管****问 文档编号:129058292 上传时间:2020-04-22 格式:DOC 页数:52 大小:724.62KB
返回 下载 相关 举报
(O管理)s精华_第1页
第1页 / 共52页
(O管理)s精华_第2页
第2页 / 共52页
(O管理)s精华_第3页
第3页 / 共52页
(O管理)s精华_第4页
第4页 / 共52页
(O管理)s精华_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《(O管理)s精华》由会员分享,可在线阅读,更多相关《(O管理)s精华(52页珍藏版)》请在金锄头文库上搜索。

1、SQL按月统计(2009-08-12 23:32:40) 转载标签: sql按月统计oracleit分类: Oracle 前提: created_date 是 表 A 的一个日期字段1、按月分组统计 (1234等自然月统计) select sum(quantity) from A group by trunc(created_date,mm); 用 trunc 函数 将日期转化为 每个月的第一天(或者说是忽略月(mm)后面得日期);2、如果 需求是要 按 每个月 的25号来划分的话(实际经常碰到) select sum(quantity) fromAgroup by trunc(created

2、_date+(add_months(created_date,1)-created_date-20),mm); 20 的作用是 每个月按20号 分割月之间 如果是按每个月的15号分割 那么 20 的位置就是15; 蓝色字体的意思是求得 所给日期 created_date 所在月的天数; 减去20 是求得 还需要 再加上 多少天就到下个月了; JDBC 连接过程(oracle)2009-01-18 21:10:47|分类: 专题 JDBC |标签: |字号大中小订阅 1.new JavaProject (JDBC) 2.src- new class (TestJDBC) 3.import jav

3、a.sql.*; (jdbc 用到的所有的类库) 4.引入驱动包 (SQLPLUS 属性看Oracle安装路径) 1.C:oracleora92jdbclibclasses12.jar 2.要用jar包里的内容,必须加到classpath里 3.eclipse 里要用jar包,必须加到BuildPath 里 4.JDBC-BuildPath-Add External Archives -classes12.jar 5.classes12 类库,找到oracle.jdbc.driver -oracleDriver.class 类 6.产生类的对象(2种) 1.Class.forName(orac

4、le.jdbc.driver.OracleDriver); /马用这种 Class not class (key word) java.lang Class 类 类装载器,调用forName方法,根据字符串,把你类的实例new出来 forName () throws ClassNotFoundException (先throws Exception) new 实例的时候Driver 自动向DriverManager 注册 2. (常用)new oracle.jdbc.driver.OracleDriver(); 7.以上就拿到了跟数据库的连接 8.Connection conn = Drive

5、rManager.getConnection(数据库连接字符串,用户名,密码) Connection conn = DriverManager.getConnection (jdbc:oracle:thin:localhost:1521:AOOPLE,scott,tiger); 9.执行SQL 语句 Statement stmt = conn.createStatement(); / 定义在前面 ResultSet rs = stmt.executeQuery(select * from dept); while (rs.next() System.out.println (rs.getStr

6、ing(deptno); System.out.println (rs.getInt(deptno); System.out.println (rs.getString(dname); rs.close(); /也报异常 stmt.close(); conn.close(); :中间出现异常 close() 都不会执行了: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.State

7、ment; public class TestJDBC public static void main(String args) Connection conn = null; Statement stmt = null; ResultSet rs = null; try Class.forName(oracle.jdbc.driver.OracleDriver); conn = DriverManager.getConnection(jdbc:oracle:thin:localhost:1521:AOOPLE,scott,tiger); stmt = conn.createStatement

8、(); rs = stmt.executeQuery(select * from dept); while (rs.next() System.out.println(rs.getString(deptno); System.out.println(rs.getString(dname); catch (ClassNotFoundException e) e.printStackTrace(); System.out.println(no qudong); catch(SQLException e) e.printStackTrace(); finally try if (rs != null

9、) rs.close(); rs = null; if (stmt != null) stmt.close(); stmt = null; if (conn != null) conn.close(); conn = null; catch (SQLException e) e.printStackTrace(); /异常放log文件里 ,/加注释; select id,count(*) from tablename group by id having count(*) 0SELECT COUNT(U.ID)FROM T_USER U, T_ROLE R, T_USER_ROLE URWHE

10、RE U.ID = UR.USER_ID AND R.ID = UR.ROLE_ID GROUP BY R.ID;试一下nvl()SELECT nvl(COUNT(U.ID) ,0)FROM T_USER U, T_ROLE R, T_USER_ROLE UR WHERE U.ID = UR.USER_ID AND R.ID = UR.ROLE_ID GROUP BY R.ID帮忙看一下这段分月统计的SQL楼主 发表于 2003-10-17 17:47 | 只看该作者 | 正序看帖 | 打印 下面这段SQL语句 的作用是统计出分月收入,然后求出每月所占的比例。我总觉得这样写有点问题,请问各位高

11、手帮忙指点一下!还有就是怎么求每月的收入增长率(本月收入-上月收入)/上月收入)?SQL Select c.月份,c.收入合计, round(c.收入合计/d.全年合计)*100,2) As所占比例2From3(Selectto_char(a.日期,MM)|月 As 月份, Sum(a.实收金额) As 收入合计4From 病人费用汇总a5Group By to_char(a.日期,MM)|月 )C,6(Select 全年总计 As 月份,Sum(b.实收金额) As 全年合计7From 病人费用汇总 b)D;月份 收入合计 所占比例- - -07月502587.53 26.7408月 110

12、5787.96 58.8309月271370.07 14.44ORACLE817 完全恢复手记!谢谢海龙的点拨,下面是一个SQL语句:Select c.月份,c.收入合计, (c.收入合计/d.全年合计)*100 As所占比例,(c.收入合计-(LAG(c.收入合计,1,c.收入合计) over (order by c.月份)/(LAG(c.收入合计,1,c.收入合计) over (order by c.月份)*100 as 收入增长率From(Selectto_char(a.日期,YYYYmm)|月 As 月份, Sum(a.实收金额) As 收入合计 From 病人费用汇总awhere a.日期 between 0 and 1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号