У меня есть таблица со следующей структурой,
name (type: TEXT) price (type: INT) color (type: TEXT) vehicletype (type: TEXT) eg. SEDAN/SUV
теперь я хочу получить (имя, цена, цвет, тип транспортного средства). Если это черный седан, я готов заплатить 10 000, но если его красный или белый, то не более 8 000. Для любого другого цвета я не буду превышать 7 000, за исключением, если это внедорожник, и в этом случае мой бюджет составляет до 15 000 для черного или до 14 000 для любого другого цвета.
У меня есть этот запрос, но он не работает,
SELECT name, price, color, vehicletype FROM carrecords WHERE (vehicletype = 'SEDAN' AND color = 'black' AND price <= 10000) OR (vehicletype = 'SEDAN' AND color IN('red','white') AND price <= 8000 ) OR (vehicletype = 'SEDAN' /* here I tried != "SUV" as well - no luck*/ AND color NOT IN('red','white','black') AND price <= 7000) OR (vehicletype = 'SUV' AND color = 'black' AND price <= 15000) OR (vehicletype = 'SUV' AND color != 'black' AND price <= 14000) ORDER BY price ASC
так, есть ли какое-нибудь решение?
SELECT name, price, color, vehicletype FROM carrecords WHERE -- black sedans up to 10k (vehicletype = 'SEDAN' AND color = 'black' AND price <= 10000) -- red or white sedans up to 8k OR (vehicletype = 'SEDAN' AND color IN('red','white') AND price <= 8000 ) -- black SUV up to 15k OR (vehicletype = 'SUV' AND color = 'black' AND price <= 15000) -- non-black SUV up to 14k OR (vehicletype = 'SUV' AND color != 'black' AND price <= 14000) -- any other vehicle up to 7k OR (price <= 7000) ORDER BY price ASC