*
*
*
DECLARE CURSOR get_baseinfo IS
SELECT ***************--游标
begin
for cr in get_baseinfo loop
check_id_detail:= cr.check_id_detail;--系统索引
*
*
road_wastage:=-(weight_waste/balance_weight)*(contract_price+qnetar_price+s_price+v_price+de_fare);
UPDATE hndl.T_RL_STRAP_TRUCK set MINE_LOSS_PRICE2=-(weight_waste/balance_weight)*(contract_price+qnetar_price+s_price+v_price+de_fare) where MAIN_KEY=strap_main_key and check_id_detail=check_id_detail;----UPDATE字段中为表达式则可以循环得到正确的不重复的值
end loop;
end;
*
*
*问题:当把UPDATE语句中的表达式即road_wastage代替为字段名时却得到重复的值,这种情况该如何处理呢小弟初学,多多指教!
*
*
DECLARE CURSOR get_baseinfo IS
SELECT ***************--游标
begin
for cr in get_baseinfo loop
check_id_detail:= cr.check_id_detail;--系统索引
*
*
road_wastage:=-(weight_waste/balance_weight)*(contract_price+qnetar_price+s_price+v_price+de_fare);
UPDATE hndl.T_RL_STRAP_TRUCK set MINE_LOSS_PRICE2=-(weight_waste/balance_weight)*(contract_price+qnetar_price+s_price+v_price+de_fare) where MAIN_KEY=strap_main_key and check_id_detail=check_id_detail;----UPDATE字段中为表达式则可以循环得到正确的不重复的值
end loop;
end;
*
*
*问题:当把UPDATE语句中的表达式即road_wastage代替为字段名时却得到重复的值,这种情况该如何处理呢小弟初学,多多指教!
就是换成字段就不可以,直接表达式就行
单纯从你粘上来的看....什么问题都没有
(
balance_code in varchar2--传入化验单编号
)
AS
iFare integer;--统计费用标志
iPrice integer;--价格标志
fLoss_price integer;--途耗价格标志
price_withtax integer;--结算含税车板价标志
assay_main_key varchar2(16);--化验主键
strap_main_key varchar2(16);--检斤主键
check_id_detail int;--检斤索引
balance_weight number(16,4);--结算重量
weight_lost number(16,4);--盈亏
weight_good number(16,4);--票重
weight_waste number(16,4);--运输损耗
iscontract_price varchar(16);--是否合同价格
contract_price number(16,4);--合同价格
icontract_code varchar2(16); --合同编号
provide_code varchar2(16);--供煤单位代码
begin_prot_code varchar(16);--发站代码
consign_price number(16,4);--委托代理费用
else_price number(16,4);--其他费用
sumbeginport varchar2(16);--费用信息表中的费用信息
weight number(16,4);--票重
vendor_code varchar2(16);--供煤单位代码
station_code varchar2(16);--发站代码
carry_money number(16,4);--每吨运费
all_money_tax number(16,4);--总费用
resist_withtax_money number(16,4);--运费可抵税
sumnopro_code varchar2(16);--
iCompute_contract_price integer;--计算价格标志
qnetar number(16,4);--低位发热量
vdaf number(16,4);--挥发分
stad number(16,4);--硫份
mar number(16,4);--全水分
imaxflag varchar2(16);--大于等于标志
iminflag varchar2(16);--小于等于标志
imax varchar2(16);--大于等于
imin varchar2(16);--小于等于
expression varchar2(16);--公式
rezhi number(30,10);--换算后的热值
nocontract_price number(16,4);--不是合同价格的时候根据发热量求出的价格
y boolean;
qnetar_price number(16,4);--发热量扣价
s_price number(16,4);--硫份扣价
s_jug varchar(12);--判断是否有'-';
v_price number(16,4);--挥发份扣价
中and check_id_detail=check_id_detail是不正确的