to_char(doc.create_date,'yyyy/MM/dd HH24:MI') as create_date,
DECODE(item.category,'冷藏',pt.cold_batch_no,pt.freeze_batch_no) as batch_no,
trunc(x [,y]),其中如果没有指定y,则对x在0位小数进行截断.
例如:TRUNC(5.75)=5.
ROUND函数是对数值进行取整,
例如:ROUND(5.75)=6,表示对5.75在0位小数处进行取整,这里0位小数是没有,不是7, 7是第一位小数了。
mod函数是一个求余函数,其格式为:MOD(number,divisor),即是两个数值表达式作除法运算后的余数。那么:两个同号整数求余与你所知的两个正数求余完全一样(即两个负整数与两个正整数的算法一样),
即两数取余后返回两数相除的余数。
函数MOD可以借用函数 INT 来表示:MOD(n, d) = n - d*INT(n/d) 示例:
MOD(3, 2) 等于 1
MOD(-3, 2) 等于1(与后面的数的符号相同)
MOD(3, -2) 等于-1(与后面数的符号相同)
MOD(-3, -2) 等于 -1
MOD(-3, 0) 等于-3
MOD(3, 0) 等于3
MOD(2,0) 等于2
算 法
一、两个异号整数求余 1.函数值符号规律(余数的符号) mod(负,正)=正 mod(正,负)=负 结论:两个整数求余时,其值的符号为除数的符号。 2.取值规律 先将两个整数看作是正数,再作除法运算 ①能整除时,其值为0 (或没有显示) ②不能整除时,其值=除数×(整商+1)-被除数 例:mod(36,-10)=-4 即:36除以10的整数商为3,加1后为4;其与除数之积为40;再与被除数之差为(40-36=4);取除数的符号。所以值为-4。 二、两个小数求余 取值规律: 被除数-(整商×除数)之后在第一位小数位进行四舍五入。 例:mod(9,1.2)=0.6即:9除1.2其整商为7;7与除数1.2之积为8.4;被除数9与8.4之差为0.6。故结果为0.6。
例:mod(9,2.2)=0.2 即:9除2.2其整商为4;4与除数2.2这积为8.8;被除数9与8.8之差为0.2,故结果为0.2.
综合运用:
(
DECODE
(
(trunc(detail.order_quantity/(select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id)) ),0,null,
(trunc(detail.order_quantity/(select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id)) )
) ||
DECODE
(
(trunc(detail.order_quantity/(select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id)) ),0,null,
(select pu.unit from wms_package_unit pu where pu.item_id=item.id and pu.convert_figure =
(select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id))
) ||
DECODE
(
(mod(detail.order_quantity,(select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id)) ),0,null,
(mod(detail.order_quantity,(select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id)) )
) ||
DECODE
(
(mod(detail.order_quantity,(select max(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id)) ),0,null,
(select pu.unit from wms_package_unit pu where pu.item_id=item.id and pu.convert_figure =
(select min(pu.convert_figure)from wms_package_unit pu where pu.item_id=item.id) )
)
) as 换算数量