У меня есть оператор CASE WHEN с тремя слоями, каждый из которых определяет определенный критерий ограничения, который соответствует определенной категории для A, B или C. A и B сильно зависят от> или <даты. </p>
The criteria are as follows:
When Date is less than 01-OCT-2019 AND Limit is greater than 10,000 Then 'A'
When Date is greater than 01-OCT-2019 AND Limit is less than 90,000 And Plan = CP Then 'B'
When Date is greater than 01-OCT-2019 AND Limit is less than 60,000 And Plan = CO Then 'B'
ELSE 'C'
Это записано как
CASE
WHEN
TO_CHAR(DATE,'dd-mm-yyyy') < '01-10-2019'
AND Limit > 10000
THEN 'A'
WHEN
TO_CHAR(DATE,'dd-mm-yyyy') > '01-10-2019'
AND Limit < 90000
AND Plan = 'CP'
THEN 'B'
WHEN
TO_CHAR(DATE,'dd-mm-yyyy') > '01-10-2019'
AND Limit < 60000
AND Plan = 'CO'
THEN 'B'
ELSE 'C'
END AS Category
Несмотря на то, что запрос выполняется, классифицированные результаты не являются точными в соответствии с условиями даты. Например:
Для категории B я должен получать даты только после 01-10-2019 (дд-мм-гггг), но я получаю даты, которые растягиваются до 2018 года.
+----+------------+---------+------+----------+---+
| ID | Date | Limit | Plan | Category | |
+----+------------+---------+------+----------+---+
| 1 | 20-11-2018 | 67000 | CP | B | X |
| 2 | 08-08-2019 | 32000 | CO | C | ✓ |
| 3 | 05-03-2019 | 12000 | CO | A | ✓ |
| 4 | 18-10-2019 | 70000 | CP | B | ✓ |
| 5 | 16-04-2019 | 52000 | CO | B | X |
| 6 | 23-07-2018 | 17000 | CP | A | ✓ |
+----+------------+---------+------+----------+---+
База данных показывает дату, структурированную как «01 -OCT-2019», однако я хочу, чтобы выходные данные отображались как «01 -10-2019». В этом случае я включил функцию To_Char.
Есть предложения по исправлению этой даты?