Я пытаюсь вычислить новое значение, используя разные таблицы, но сначала мне нужно было создать вспомогательную таблицу с ограничениями этого расчета, чтобы добиться большей модульности и иметь возможность изменять пределы в любое время.
Я хотел такую таблицу:
product_type product_area max_limit
product-100_sp 71 67.5
product-100_sp 70 22.5
product-200_se 71 80
product-200_se 70 16
Я пытался запустить это:
CREATE OR REPLACE VIEW aux_limits AS
SELECT DISTINCT
mtd.product_type,
v.product_area,
CASE WHEN (v.product_area=70 AND mtd.product_type LIKE '%product-100%' THEN 22.5 ELSE NULL END) AS Max_Limit
CASE WHEN (v.product_area=71 AND mtd.product_type LIKE '%product-100%' THEN 67.5 ELSE NULL END) AS Max_Limit
CASE WHEN (v.product_area=70 AND mtd.product_type LIKE '%product-200%' THEN 16 ELSE NULL END) AS Max_Limit
CASE WHEN (v.product_area=71 AND mtd.product_type LIKE '%product-200%' THEN 80 ELSE NULL END) AS Max_Limit
CASE WHEN (v.product_area=70 AND mtd.product_type LIKE '%product-300%' THEN 40 ELSE NULL END) AS Max_Limit
CASE WHEN (v.product_area=71 AND mtd.product_type LIKE '%product-300%' THEN 70 ELSE NULL END) AS Max_Limit
CASE WHEN (v.product_area=70 AND mtd.product_type LIKE '%product-400%' THEN 40 ELSE NULL END) AS Max_Limit
CASE WHEN (v.product_area=71 AND mtd.product_type LIKE '%product-400%' THEN 340 ELSE NULL END) AS Max_Limit
CASE WHEN (v.product_area=70 AND mtd.product_type LIKE '%product-500%' THEN 25 ELSE NULL END) AS Max_Limit
CASE WHEN (v.product_area=71 AND mtd.product_type LIKE '%product-500%' THEN 40 ELSE NULL END) AS Max_Limit
FROM table1 AS v, table2 AS mtd
WHERE (product_area=71 OR product_area=70)
GROUP BY 1,2
Структура mtd:
local_id global_id product_name project_name product_type
745 896 example1 example1 product-100_test
Иструктура v:
product_key product_area timestamp database_id value
8552 71 2016-01-01 00:00:00 3 45325
8550 105 2016-01-01 00:00:00 3 68
Однако я получаю следующую ошибку:
SQL Error [500310] [42601]: [Amazon](500310) Invalid operation: syntax error at or near "THEN"
Position: 211;
[Amazon](500310) Invalid operation: syntax error at or near "THEN"
Position: 211;
[Amazon](500310) Invalid operation: syntax error at or near "THEN"
Position: 211;
Честно говоря, я новичок в SQL, поэтому я предполагаю, что я делаю что-то не так, как и яне знаю что это такое