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