2010-08-09 2 views
-1

этот запрос SELECT SUM(s.msg_sent_datetime - r.date_received) AS differenceУдаление всех 0 строк значений возвращает другой результат?

возвращает -743726381625992.000000

но если я добавить на WHERE (s.msg_sent_datetime - r.date_received) > 0

он возвращает: +343435413,000000

Я думал, что 0 значение строки не будет иметь никакого эффекта на сумму? также, что вверх с .000000

ответ

1

Ваш условный оператор также игнорирует отрицательные значения, т.е. если (s.msg_sent_datetime - r.date_received) < 0, то строка игнорируется. С другой стороны, если это условие не существует (например, в вашем исходном запросе), вы также добавляете отрицательные числа.

0

Это то, что вы хотите WHERE (s.msg_sent_datetime - r.date_received) <> 0

То есть предполагается, что вы хотите отрицательные результаты, а также, что на основе имен полей должно быть большинство.

Смежные вопросы