Я получаю смешанные результаты при выполнении следующего оператора CASE.
То, что я пытаюсь сделать, это определить типы ремонта на основе
1) часть их номера детали и
2) часть трудового кодекса, связанная с номером детали.
Похоже, что оператор работает с теми, которые называются «ЗАМЕНЕННЫЕ», но когда есть сочетание номеров деталей и / или трудовых кодов, это не так. В большинстве случаев они заканчиваются как «ДРУГОЕ».
Заявление CASE написано в порядке важности ремонта. Что-то не так с моей структурой? Я не задаю правильный вопрос?
(CASE
WHEN (D.PART_NO LIKE '3102%') AND (F.OPER_CD = 'JD01AA') THEN 'REPLACED'
WHEN (D.PART_NO LIKE '310C%') AND (F.OPER_CD = 'JD01AA') THEN 'REPLACED'
WHEN (D.PART_NO LIKE '3103%') AND (F.OPER_CD = 'JD01AA') THEN 'REPLACED'
WHEN (D.PART_NO LIKE '310F%') AND (F.OPER_CD = 'JD01AA') THEN 'REPLACED'
WHEN (D.PART_NO LIKE '3110%') THEN 'TCONVERT'
WHEN (D.PART_NO LIKE '3121%') THEN 'AFR'
WHEN (D.PART_NO LIKE '31490%') THEN 'GEAR_RDC'
WHEN (D.PART_NO LIKE '31495%') THEN 'GEAR_RDC'
WHEN (D.PART_NO LIKE '3170%') AND (F.OPER_CD = 'JD48AA') THEN 'CVALVE'
WHEN (D.PART_NO LIKE '3834%') OR (F.OPER_CD IN ('JD64AA', 'JD65AA', 'JD66AA')) THEN 'DSEAL'
WHEN (D.PART_NO LIKE '3137%') OR (F.OPER_CD ='JD88AA') THEN 'TCSEAL'
WHEN (D.PART_NO LIKE '3311%') OR (F.OPER_CD ='JD88AA') THEN 'TCSEAL'
WHEN (D.PART_NO LIKE '3170%') AND (F.OPER_CD = 'JD48AA') THEN 'CVALVE'
WHEN (D.PART_NO LIKE '31490%') THEN 'GEAR_RDC'
WHEN (D.PART_NO LIKE '31495%') THEN 'GEAR_RDC'
WHEN (F.OPER_CD LIKE 'NODJD%') THEN 'NDF'
WHEN (COUNT(D.PART_NO) < '1') THEN 'REPROGM'
ELSE ('OTHER')
END) RPRTYP
Кто-нибудь может помочь?