国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

在報表視圖中實現分類顯示

2024-07-21 02:35:39
字體:
來源:轉載
供稿:網友

  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
     );

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 内乡县| 丹凤县| 泰兴市| 清水河县| 加查县| 修水县| 辽宁省| 蒲江县| 平度市| 广水市| 灵台县| 广丰县| 正宁县| 宁远县| 万年县| 沽源县| 县级市| 营口市| 桦川县| 赤水市| 尤溪县| 定西市| 珲春市| 赤壁市| 广元市| 陇川县| 台北市| 宁夏| 永德县| 抚远县| 吕梁市| 瓮安县| 白朗县| 富锦市| 鄂托克旗| 阿拉善左旗| 东乡县| 勃利县| 宿松县| 宿松县| 娄烦县|