Пытаясь найти лучший способ написать эту инструкцию SQL.
У меня есть таблица клиентов с внутренним кредитным рейтингом этого клиента. Тогда у меня есть другая таблица с определениями этого кредитного рейтинга. Я хотел бы объединить эти таблицы, но во второй таблице нет способа легко связать их.
Оценка клиента - это целое число от 1 до 999, а в таблице определения есть следующие столбцы:
Score
Description
И эти строки:
60 LOW
99 MED
999 HIGH
Таким образом, в основном, если у клиента оценка от 1 до 60, он низкий, 61-99 - мед, и 100-999 - высокий.
Я не могу действительно присоединиться к ним, потому что он присоединился бы к ним, только если счет был 60, 99 или 999, и это исключило бы кого-либо еще с такими счетами.
Я не хочу делать case-заявление со статическими числами, потому что наши оценки могут измениться в будущем, и я не хочу обновлять мой начальный запрос, когда / если они это сделают. Я также не могу создать какие-либо таблицы или функции для этого - мне нужно создать оператор SQL, чтобы сделать это для меня.
EDIT:
Коллега сказал, что это сработает, но это немного сумасшествие. Я думаю, что должен быть лучший способ:
SELECT
internal_credit_score
(
SELECT
credit_score_short_desc
FROM
cf_internal_credit_score
WHERE
internal_credit_score = (
SELECT
max(credit.internal_credit_score)
FROM
cf_internal_credit_score credit
WHERE
cs.internal_credit_score <= credit.internal_credit_score
AND credit.internal_credit_score <= (
SELECT
min(credit2.internal_credit_score)
FROM
cf_internal_credit_score credit2
WHERE
cs.internal_credit_score <= credit2.internal_credit_score
)
)
)
FROM
customer_statements cs