Использование нескольких условий внутри оператора case в MYSQL - PullRequest
0 голосов
/ 29 января 2020

Моя цель - присоединиться к таблицам пользователей и продуктов в Product_ID. Я приложил таблицу пользователей и таблицу продуктов для вашей справки ниже.

таблица пользователей: Таблица пользователей

enter image description here

таблица продуктов: таблица продуктов

enter image description here

Когда product_ID равен 7 , мне нужно изучить дата заявки в таблице users и сравните, попадает ли она в first_day_active и last_day_active в products стол для получения комиссии ставки. Я использовал приведенный ниже запрос, и он, похоже, не работает. Может кто-нибудь, пожалуйста, помогите? Спасибо!

CASE

WHEN (users.product_ID = 7 AND users.application_date BETWEEN ('2017-04-01','2017-06-01')) THEN products.commission
WHEN (users.product_ID = 7 AND users.application_date BETWEEN ('2017-06-02','2017-09-01')) THEN products.commission
WHEN users.product_ID = 7 AND users.application_date > '2017-09-02' THEN products.commission
ELSE "Something Fishy" END AS TESTING

1 Ответ

0 голосов
/ 29 января 2020

Схематически:

SELECT Users.Name, 
       Products.Product_name,
       Products.Comission
FROM Users
JOIN Products ON Users.Application_id = Products.Application_id
             AND Users.Application_Date BETWEEN Products.First_day
                                            AND COALESCE(Products.Last_day, Users.Application_Date)
WHERE products.Active = 0
...