您好,登錄后才能下訂單哦!
這篇文章主要介紹了Birt中使用SQL窗口函數實現組內跨行計算的方法,具有一定借鑒價值,需要的朋友可以參考下。如下資料是關于跨行計算的詳細步驟內容。
本例中有三個字段,其中SELLERID是分組字段,DAY是需要進行比較的字段,字段類型為日期時間型。需要設計一張分組表,SELLERID是分組字段,明細字段是DAY, AMOUNT以及計算列SHIFTTIME, SHIFTTIME中存放著DAY和本組上一條記錄中的DAY相差幾天。源數據如下:
用集算器進行數據整理:
A | ||
1 | =connect("db").query("select SELLERID, DAY,AMOUNT,0 as SHIFTTIME from SALES order by SELLERID, DAY") | 查詢數據庫,對SELLERID, DAY字段排序,多產生一列常數備用 |
2 | =A1.group(SELLERID).run(~.run(interval(DAY[-1],DAY):SHIFTTIME)) | 按SELLERID分組,并在每組數據中修改計算列SHIFTTIME |
3 | =A2.union() | 合并每組數據 |
4 | return A3 | 將計算結果返回給報表工具。 |
將上邊SPL代碼保存為sales.dfx,然后引入到Birt報表中。Birt調用SPL請參考《BIRT調用SPL腳本》。
第一步:添加集算器JDBC數據源。
第二步:創建數據集,編輯Query Text。
第三步:創建報表,報表設計如下:
第四步:WEB 預覽,預覽結果如下:
看完這篇文章,你們學會使用SQL窗口函數實現組內跨行計算的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。