您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何進行Oracel存儲過程寫報表,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
前言
下面我們就來看看怎么用存儲過程寫出客戶想要實現的報表。
需求報表樣式
上面的報表可以看出,客戶要的是一個橫向列表,對應的商戶周租金與周銷售的對比,一般來說我們從數據庫里查詢橫向報表非常的麻煩,還好這個是周的報表,所以我們就可以固定表列,最終計算出我們的數據,當然不能同這個EXCEL里完全一樣,但是也基本實現的客戶的需求。
解決思路
首先根據客戶要求的報表我們先創建一個臨時的中間表,用于處理橫向數據問題。
根據客戶輸入的一個日期參數,我們計算出輸入日期所對應的周的開始日期和結束日期。
臨時表中第一行插入我們所要查詢的日期,用于判識,因為報表的列不能動態修改日期,我們只能用周一周二等方式顯示,所以這樣就不容易判斷出報表查詢的對應日期。
然后先在中間表里加入所有的店鋪基本信息。
計算對應商戶的周租金。
更新商戶這周中每天的銷售。
計算中間表中的數據,坪效,合計,租售比等。
輸出顯示游標。
代碼實現
1.首先根據客戶要求的報表我們先創建一個臨時的中間表,用于處理橫向數據問題。
中間表的用法可以看《Oracle的臨時表的使用》這一篇中有詳細講解。
上面為臨時表的創建,列都說的比較清楚了。
然后開始寫存儲過程,我們的存儲過程名定義為sRpt_shpWeekXsRent,其中輸入參數只有一個日期,輸出參數為游標
2.根據客戶輸入的一個日期參數,我們計算出輸入日期所對應的周的開始日期和結束日期。
3.臨時表中第一行插入我們所要查詢的日期,用于判識,因為報表的列不能動態修改日期,我們只能用周一周二等方式顯示,所以這樣就不容易判斷出報表查詢的對應日期。
4.然后先在中間表里加入所有的店鋪基本信息。
注意上面的圖和這張圖中的1,2是標紅框的,這是為了最后我們查詢的時候用itemno進行排序,這樣開始日期到結束日期肯定會顯示在第一行了。
5.計算對應商戶的周租金。
周租金我們用的計算方法是能過數據表里獲取到對應的開始結束日期的租金,除去開始到結束日期的天數,再乘7為一周。
6.更新商戶這周中每天的銷售
先通過靜態游標獲取到地應的分割表,生成動態的查詢銷售的語句
然后再根據銷售關聯我們需要的信息完善原來的動態SQL語句。
動態生成游標數據,然后判斷對應的星期幾用于修改對應周幾列的銷售數據。
7.計算中間表中的數據,坪效,合計,租售比等。
首先計算每天的坪效數。
然后更新周合計。
最后更新租售比。
8.輸出顯示游標。
這樣我們的存儲過程就寫完了,下面我們在軟件里把報表設置進去,然后看看效果
查詢的最后結果
以上就是如何進行Oracel存儲過程寫報表,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。