教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> Oracle >> 备份恢复 >> 在报表视图中实现分类显示 RSS订阅
在报表视图中实现分类显示
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   

  1 前言 
  在实现用户的报表过程中,用户经常会提出一个看似很合符情理的要求,但实现起来却困难重重,如下:
  收款明细表<省略其它字段>
  
  数据样式
  日期    收款金额
  2004.02.20  87
  2004.02.20  93
  2004.02.21  100
  2004.02.20  50
  ...
  
  报表样式
  日期    收款金额
  2004.02.20  87
  <Null>    93<没有值,与上一笔记录相同,日期为:2004.02.20>
  2004.02.21  100
  <Null>    50<没有值,与上一笔记录相同,日期为:2004.02.21>
  ...
  
  2 实现思路
  利用OVER函数,算出当前记录在记录集中出现的次数,如果次数大于1,则不返回NULL。
  
  3 实例演练 
  --3.1 测试环境
  Drop Table Test_ReRecord;
  create table Test_ReRecord
  (
    BillDate Date not null,
    Money   Number(20,4) Not Null
  )
  /
  Insert Into Test_ReRecord 
   Values
   (
    To_Date('2004.02.20','yyyy.mm.dd')
    ,100);
  Insert Into Test_ReRecord 
   Values
   (
    To_Date('2004.02.20','yyyy.mm.dd')
    ,120);
  Insert Into Test_ReRecord 
   Values
   (
    To_Date('2004.02.20','yyyy.mm.dd')
    ,80);
  Insert Into Test_ReRecord 
   Values
   (
    To_Date('2004.02.21','yyyy.mm.dd')
    ,166);
  Insert Into Test_ReRecord 
   Values
   (
    To_Date('2004.02.21','yyyy.mm.dd')
    ,221);
  Commit;
  
  --3.2 SELECT语句讲释
  SELECT 
    DECODE(RN,1,BillDate) BillDate --如果BillDate在原始记录集中出现超过1次,则显示空值
    ,Money
   From
    (
     SELECT 
       BillDate
       ,Money
       ,ROW_NUMBER() --通过OVER函数返回相同的BillDate当前出现的次数
      OVER 
       (
        Partition By BillDate --根据BillDate进行分区,即遇到不同的BillDate,Row_Number就恢复从1开始计数
        Order By BillDate --根据BillDate进行排序,一般配合Partition By子项使用。
       ) RN 
      FROM 
       Test_ReRecord
     );

来源:upschool.com.cn
作者:
关键字:
发表日期:2007-1-6 0:48:05

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:将纵向数据列表转化为横向数据字段   下一篇:Oracle备份的分类总结分析


2008-12-2 6:16:57
本文的相类似文章
在学习中进步 在进步中成长 教程中国相随您的成长之路
华腾联合科技股份有限公司版权所有
广告联系:Rosibo@163.com