SELECT
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)
)
当除数E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM为0时,为什么还会去执行下面的ROUND处理,我把下面的其中一个条件F.MTRL_CD = 1改成E.MTRL_CD = 1就不会报除数为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)
)
当除数E.LSS_PCT_LESS_MTRL_USE_RSLT_NUM为0时,为什么还会去执行下面的ROUND处理,我把下面的其中一个条件F.MTRL_CD = 1改成E.MTRL_CD = 1就不会报除数为0得错误。不知道是什么原因,请高人帮忙解释一下。
(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
)))