Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
05.03.2020, 16:10
|
|||
---|---|---|---|
|
|||
Сумма столбца по диапазону дат |
|||
#18+
Добрый день! Помогите пожалуйста. Есть таблица 'zakaz', в ней есть столбцы 'zakazy' и 'date'. Нужно вытянуть сумму столбца 'zakazy' и взять диапазон с 15 дней назад до вчера (за последние 2 недели, начиная со вчерашнего дня) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 16:50
|
|||
---|---|---|---|
Сумма столбца по диапазону дат |
|||
#18+
Ну обычный WHERE BETWEEN. Для расчёта границ использовать date - INTERVAL. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 17:03
|
|||
---|---|---|---|
|
|||
Сумма столбца по диапазону дат |
|||
#18+
Akina, а для суммы столбца? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 17:31
|
|||
---|---|---|---|
|
|||
Сумма столбца по диапазону дат |
|||
#18+
Что я не так делаю? SELECT SUM('zakazy') FROM `zakaz` WHERE date BETWEEN NOW() - INTERVAL -1 DAY AND NOW() - INTERVAL -15 DAY ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 17:51
|
|||
---|---|---|---|
Сумма столбца по диапазону дат |
|||
#18+
Ну наверное если отнимать отрицательное, то оно как бы увеличится... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 17:55
|
|||
---|---|---|---|
Сумма столбца по диапазону дат |
|||
#18+
Еще проверьте границы времени в интервале выборки. Они должны быть приведены на начало и конец суток соответственно. В противном случае может выпадать часть заказов в первом и последнем дне. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 17:59
|
|||
---|---|---|---|
|
|||
Сумма столбца по диапазону дат |
|||
#18+
Akina, Убрал минуса, прилетает пустота. В базе вот что: ID SERIAL DATE ZAKAZY 1 1234567 2020-03-02 4 2 1234567 2020-03-02 5 3 1234567 2020-02-02 5 Должен был получить 9 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 18:05
|
|||
---|---|---|---|
|
|||
Сумма столбца по диапазону дат |
|||
#18+
Gluck99, а если время отсутствует? просто дата ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 18:10
|
|||
---|---|---|---|
Сумма столбца по диапазону дат |
|||
#18+
stoniq, Научитесь отлаживать запросы. Делайте по частям. Сначала выборку по интервалу с указанными явно значениями (без SUM, без NOW/INTERVAL). Потом меняете одно значение на вычисляемое - смотрите результат. Потом второе значение - смотрите результат. Если получается количество строк = 9 (считаете глазами), добавляете SUM(). Тот же принцип применяете ко вложенным запросам. Сначала отлаживаете вложенный запрос, потом запрос выше уровнем и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 18:18
|
|||
---|---|---|---|
Сумма столбца по диапазону дат |
|||
#18+
stoniq Gluck99, а если время отсутствует? просто дата ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 18:40
|
|||
---|---|---|---|
|
|||
Сумма столбца по диапазону дат |
|||
#18+
Gluck99, SELECT SUM(ZAKAZY) FROM `zakaz` WHERE `DATE` <= DATE_SUB(CURDATE(),INTERVAL 1 DAY) Пока дошел до этого, так работает. Остальное методом тыка пока нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 18:50
|
|||
---|---|---|---|
|
|||
Сумма столбца по диапазону дат |
|||
#18+
Gluck99, добавил условие по SERIAL, всё работает, не знаю по правилам ли я всё сделал, либо можно как-то проще было сделать: SELECT SUM(ZAKAZY) FROM `zakaz` WHERE `DATE` <= DATE_SUB(CURDATE(),INTERVAL 1 DAY) AND `DATE` >= DATE_SUB(CURDATE(),INTERVAL 14 DAY) AND `SERIAL` = 1234567 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 19:11
|
|||
---|---|---|---|
Сумма столбца по диапазону дат |
|||
#18+
stoniq не знаю по правилам ли Код: sql 1. 2. 3. 4. 5.
но и так ничего. А ещё я бы переименовал поля `date` и `serial - чтобы не использовать в качестве имён полей зарезервированные слова. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.03.2020, 19:40
|
|||
---|---|---|---|
Сумма столбца по диапазону дат |
|||
#18+
stoniq, 1. Что такое SERIAL? Поле? Не надо поля именовать служебными и прочими подобными словами. Это плохая привычка, которая в какой-то момент выйдет боком. 2. Что мешает использовать BETWEEN? Это нагляднее. Просто надо даты в условии BETWEEN поменять местами. Код: sql 1. 2. 3.
Date -> ZakazData, Serial -> SomeSerial ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=47&tablet=1&tid=1828716]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 179ms |
0 / 0 |