Время прочтения: 2 мин.
При работе с базами данных довольно часто возникает ситуация, когда нужно найти операции свыше определённой суммы в рублевом эквиваленте. Но что делать, если в базе данных нет поля с конвертацией валют и драгоценных металлов в рублевый эквивалент?
Легко и непринужденно сделать конвертацию самостоятельно, в окне запроса.
Предположим, есть таблица TableName с полями «Valuta», «Summa_operacii» и «Data_operacii», в которой нужно выбрать операции свыше 10 тыс. рублей по разным валютам.
Запрос на поиск операций больше 10 тыс.рублей по разным валютам и драгоценным металлам будет выглядеть так:
— 1 вариант
SELECT Valuta, Summa_operacii, Data_operacii
FROM TableName
Where
ABS (CASE
WHEN Valuta = 810 THEN Summa_operacii -- рубли
WHEN Valuta = 978 THEN Summa_operacii * 70 -- евро
WHEN Valuta = 840 THEN Summa_operacii * 64.2 -- доллар
WHEN Valuta = 33 THEN Summa_operacii * 3714 -- палладий
WHEN Valuta = 98 THEN Summa_operacii * 3104 -- золото
WHEN Valuta = 76 THEN Summa_operacii * 1892 -- платина
WHEN Valuta = 99 THEN Summa_operacii * 36 -- серебро
END) > 10000 –- условие суммы операции более 10 тыс. рублей
— 2 вариант
SELECT Valuta, Summa_operacii, Data_operacii
FROM TableName
Where
(
(Summa_operacii > 10000 AND Valuta = 810) –- рубли
OR (Summa_operacii > 140 AND Valuta = 978) -- евро
OR (Summa_operacii > 160 AND Valuta = 840) -- доллар
OR (Summa_operacii > 3 AND Valuta = 33) -- палладий
OR (Summa_operacii > 3 AND Valuta = 98) -- золото
OR (Summa_operacii > 6 AND Valuta = 76) -- платина
OR (Summa_operacii > 330 AND Valuta = 99) -- серебро
)
Список видов валют и драгоценных металлов можно легко расширить, добавив код валюты/ драгоценного металла и их курс к рублю.