mysql, возвращает только результаты больше 10000

0

Я сравниваю абсолютную разницу между двумя таблицами, округленными до ближайших сотен. Мне нужен результирующий вывод, чтобы показывать только значения, превышающие 10 000. Мой вывод содержит в себе более низкие номера. Вот мой код:

select  ve.Geography, 
round(abs(ce.2010 - ve.2010), -2) as '2010', 
round(abs(ce.2011 - ve.2011), -2) as '2011', 
round(abs(ce.2012 - ve.2012), -2) as '2012', 
round(abs(ce.2013 - ve.2013), -2) as '2013', 
round(abs(ce.2014 - ve.2014), -2) as '2014', 
round(abs(ce.2015 - ve.2015), -2) as '2015' 
from ve join ce on ve.Geography = ce.Geography 
where 
ve.Geography = ce.Geography or
round(abs(ce.2010 - ve.2010), -2)>= 10000 or
round(abs(ce.2011 - ve.2011), -2)>=10000 or 
round(abs(ce.2012 - ve.2012), -2)>=10000 or
round(abs(ce.2013 - ve.2013), -2)>=10000 or
round(abs(ce.2014 - ve.2014), -2)>=10000 or
round(abs(ce.2015 - ve.2015), -2)>=10000
;
  • 0
    Можете ли вы предоставить пример данных?
  • 0
    Есть ли у вас такая же проблема, если вы используете только «2010» и почему вы используете первое предложение where?
Показать ещё 1 комментарий
Теги:
mysql-workbench

1 ответ

1

Это ваша проблема:

where ve.Geography = ce.Geography

Это всегда будет возвращать true для каждой согласованной записи в вашем результирующем наборе. Удалите его, и запрос должен работать:

WHERE
    ROUND(ABS(ce.2010 - ve.2010), -2) >= 10000 OR
    ROUND(ABS(ce.2011 - ve.2011), -2) >= 10000 OR
    ROUND(ABS(ce.2012 - ve.2012), -2) >= 10000 OR
    ROUND(ABS(ce.2013 - ve.2013), -2) >= 10000 OR
    ROUND(ABS(ce.2014 - ve.2014), -2) >= 10000 OR
    ROUND(ABS(ce.2015 - ve.2015), -2) >= 10000
  • 0
    Спасибо! Я выполнил обновленный запрос, но он все равно приводит к таблице с цифрами менее 10000. Это потому, что я в MySQL? я должен попробовать другую систему?
  • 0
    Обновите свой вопрос и покажите пример данных. Ваша логика говорит возвращать записи , если какие - либо из абсолютных закругленных чисел быть больше 10000. Которым метрика вы говорите , что мой запрос не удается?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню