관련 테이블 구조이구요.
UPDATE M_GRADING_DTL
SET ST_IV_AMT= (case when a.SEX_CD= '1' AND a.LAST_GRADE='+1' AND b.WORK_FLG='0' THEN b.TREE_PRICE * a.DEAD_WEIGHT ELSE 0 END)
FROM M_GRADING_DTL A
INNER JOIN M_IV_HDR D ON D.IV_NO = A.IV_NO
LEFT join M_PIG_DAILY_PRICE b ON b.WORK_DT=a.BUTCHERY_DT
WHERE a.BP_CD='11-0009' and a.ST_FLG='Y' AND D.IV_DT='20150207'
b.WORK_FLG 값에 0 값만 읽어오고 다른 1,2,5,4,6,7,8,9 값은 읽어오지 못합니다.
고로
(case when a.SEX_CD= '3' AND a.LAST_GRADE='+1' AND b.WORK_FLG='0' THEN b.TREE_PRICE * a.DEAD_WEIGHT ELSE 0 END)
은 조건값이 돌아갑니다. WORK_FLG가 0이 아닌값은 반영이 안되는 겁니다.
테이블 값은 아래와 같습니다.
WORK_DT WORK_FLG BASIC_UNIT CARCASS_PRICE TREE_PRICE REMARK CUSER CDATE UUSER UDATE
20150206 0 KG 5107.0000 5216.0000 NULL MPSADMIN 2006-06-23 15:09:36.000 NULL NULL
20150206 1 KG 5031.0000 5030.0000 NULL MPSADMIN 2006-06-23 15:09:36.000 NULL NULL
20150206 2 KG 4815.0000 4841.0000 NULL MPSADMIN 2006-06-23 15:09:36.000 NULL NULL
20150206 5 KG 3308.0000 3440.0000 NULL MPSADMIN 2006-06-23 15:09:36.000 NULL NULL
20150206 4 KG 3274.0000 3330.0000 NULL MPSADMIN 2006-06-23 15:09:36.000 NULL NULL
20150206 6 KG 4745.0000 4867.0000 NULL MPSADMIN 2006-06-23 15:09:36.000 NULL NULL
20150206 7 KG 4758.0000 4774.0000 NULL MPSADMIN 2006-06-23 15:09:36.000 NULL NULL
20150206 8 KG 4503.0000 4517.0000 NULL MPSADMIN 2006-06-23 15:09:36.000 NULL NULL
20150206 9 KG 3743.0000 3593.0000 NULL MPSADMIN 2006-06-23 15:09:36.000 NULL NULL
이제 머리에 꽃꼿기 일보직전입니다. 구재좀 해주세요 고수님들
case 문에 AND b.WORK_FLG='0' 일때 만 계산 되고 아니면 0으로 처리해라 되어 있는데....
뭘 말씀 하시는지가 ?
0처리도 안된다는것인지 ?