㈠ 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;
如要经过条件筛选更新,则可定义一个游标,逐条处理。