今天要給客戶做一張報表,主要是反應當天的話務數量與前一天之間的對比情況,也就是說,假設表結構是這樣的:
日 期
呼入號碼數
2015/12/26
10248
2015/12/27
9640
2015/12/28
9362
2015/12/29
9911
那麼做出來的表應該是這樣的:
日 期
呼入號碼數
增幅2015/12/26
10248
-29.29%
2015/12/27
9640
-5.93%
2015/12/28
9362
-2.88%
2015/12/29
9911
5.86%
其中 增幅應該是 當前的記錄跟上一天記錄去做對比,這種情況在ireport中應該是可以實現的,但是ireport資料較少。
故從sql入手,目前想到的有兩種方法:
1、拼兩遍sql
select xx from *** a,
select xx from *** b
where a.日期=b.日期-1天
2、使用oracle lead、lag函式
select 日期,
號碼個數,
lag(
號碼個數) over(order by
日期) 上一天數量 from *** where 1=1
select 日期,
號碼個數,
lead(
號碼個數
) over(order by
日期) 下一天數量 from *** where 1=1
然後再用相應的公式算出增幅百分比即可
SQL查詢當前資料上一條和下一條的記錄
id是指當前資料news id引數 方法一 string presql select top 1 from news where news id id order by news id desc string nextsql select top 1 from news where news id ...
Mysql 查詢當前資料上一條和下一條的記錄
獲取當前檔案上一條與下一條記錄的原理是上一條的sql語句,從news表裡按從大到小的順序選擇一條比當前id小的新聞,下一條的sql語句,從news表裡按從小到大的順序選擇一條比當前id大的新聞。如果id是主鍵或者有索引,可以直接查詢 方法1 sql view plain copy 1.select ...
Mysql 查詢當前資料上一條和下一條的記錄
獲取當前檔案上一條與下一條記錄的原理是上一條的sql語句,從news表裡按從大到小的順序選擇一條比當前id小的新聞,下一條的sql語句,從news表裡按從小到大的順序選擇一條比當前id大的新聞。如果id是主鍵或者有索引,可以直接查詢 方法1 1.select from table a where i...