SELECT
E.MTRL_INV_NUM + E.MTRL_DSCD_SCHD_NUM AS FREND_STK_NUM
,E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM
FROM
DRT_MTRL_STK E
, DRM_MTRL F
WHERE (E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM <> 0
AND ROUND((E.LSS_PCT_LESS_THRY_STCK_NUM -
E.MTRL_INV_NUM -
E.MTRL_STCK_ADJ_NUM) /
E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM * 100
, 2) <= 3)
OR F.MTRL_CD = '0'
当E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM为0(除数为0)时,会报除数为0得错误,
但把后面那个条件F.MTRL_CD = '0'改成E.MTRL_CD = '0'就不会报除数为0得错误,不知道是为什么?
E.MTRL_INV_NUM + E.MTRL_DSCD_SCHD_NUM AS FREND_STK_NUM
,E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM
FROM
DRT_MTRL_STK E
, DRM_MTRL F
WHERE (E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM <> 0
AND ROUND((E.LSS_PCT_LESS_THRY_STCK_NUM -
E.MTRL_INV_NUM -
E.MTRL_STCK_ADJ_NUM) /
E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM * 100
, 2) <= 3)
OR F.MTRL_CD = '0'
当E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM为0(除数为0)时,会报除数为0得错误,
但把后面那个条件F.MTRL_CD = '0'改成E.MTRL_CD = '0'就不会报除数为0得错误,不知道是为什么?
放到
OR F.MTRL_CD = '0'后面吧
E.MTRL_INV_NUM + E.MTRL_DSCD_SCHD_NUM AS FREND_STK_NUM
FROM
DRT_MTRL_STK E
, DRM_MTRL F
WHERE
E.MTRL_CD = F.MTRL_CD
AND E.YR_MNTH = 200707
AND F.DEL_FLG = 0
AND( 1 = 0
OR((1 = 1
AND E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM <> 0
AND ROUND((E.LSS_PCT_LESS_THRY_STCK_NUM -
E.MTRL_INV_NUM -
E.MTRL_STCK_ADJ_NUM) /
E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM * 100, 2) <= 3
))
OR (1 = 1
AND E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM <> 0
AND ROUND((E.LSS_PCT_LESS_THRY_STCK_NUM -
E.MTRL_INV_NUM -
E.MTRL_STCK_ADJ_NUM) /
E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM * 100, 2) >= 4)
OR (1 = 1 AND E.MTRL_DSCD_SCHD_NUM <> 0)
OR (1 = 1 AND F.MTRL_CD = 1)
OR (1 = 1 AND E.MTRL_STCK_ADJ_NUM <> 0)
OR (1 = 1 AND E.SMPL_RSLT_NUM <> 0)
OR (1 = 1 AND E.MTRL_RET_RSLT_NUM <> 0)
OR (1 = 1 AND E.MTRL_INV_RMRK IS NOT NULL)
)