㈠ oracle存儲過程for循環相減
一條語句可以解決,用不著for游標循環。
createtableM_TATTENDANCEDATA(TR_DATEchar(8),PAY_CARD_COUNTint);
insertintoM_TATTENDANCEDATAvalues(20120922,324);
insertintoM_TATTENDANCEDATAvalues(20120921,314);
insertintoM_TATTENDANCEDATAvalues(20120920,306);
insertintoM_TATTENDANCEDATAvalues(20120919,305);
insertintoM_TATTENDANCEDATAvalues(20120918,304);
selectTR_DATE日期,PAY_CARD_COUNT刷卡數,
PAY_CARD_COUNT-Lag(PAY_CARD_COUNT,1)OVER(orderbyTR_DATE)相差數,
round((PAY_CARD_COUNT-Lag(PAY_CARD_COUNT,1)OVER(orderbyTR_DATE))/
Lag(PAY_CARD_COUNT,1)OVER(orderbyTR_DATE)*100,2)相差比
fromM_TATTENDANCEDATAorderbyTR_DATE;
㈡ oracle 加減乘除請教,表中有A、B、C三個欄位,要進行計算:(B-A)/B=C 這個計算怎麼寫sql腳本!
假設table名稱為t1,如要把(B-A)/B的結果賦給C,則用下面語句:
update t1 set C=(B-A)/B;
如要經過條件篩選更新,則可定義一個游標,逐條處理。