SELECT s.id,-- + еще несколько полей из первой таблицы
today.pop,
yesterday.pop AS yPop,
today.pop - yesterday.pop AS delta
FROM countries1 AS s
LEFTJOIN countries2 AS today
ON today.id = s.id
AND today.stateDate ='2013-12-20'
LEFTJOIN countries2 AS yesterday
ON yesterday.id = s.id
AND yesterday.stateDate ='2013-12-20'- INTERVAL 1 DAY
ORDERBY today.pop DESC
LIMIT10
В результате получаю "SQL Error (1690): BIGINT UNSIGNED value is out of range in...".
Вычитаемые поля - unsigned int, значения не превышают нескольких тысяч.
Если меняю минус на плюс, то сумму прекрасно подсчитывает. Но мне-то нужна разность. Что делать? (Добавление)
а-а-а-а %)
сменил атрибут столбика с unsigned на signed и стало прекрасно вычитаться.
только не понятно почему..
----- Чем больше узнаю, тем больше я не знаю.
caballero
Отправлено: 08 Февраля, 2014 - 23:42:03
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
так убери unsigned с типа (Добавление)
видимо результирующее поле тоже unsigned делает
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.