Не могу получить нужный результат запроса!
Есть таблица data
id integer
cnt integer
dt datetime('now','localtime')
1;100;2016-02-26 12:40:00
2;100;2016-02-26 12:42:00
3;200;2016-02-27 13:40:00
4;200;2016-02-27 13:40:00
.....
Все cnt в течении одного дня имеют одинаковое значение.
Требуется с группировать cnt за каждый день в диапазоне дат (2016-02-26 = 100) (2016-02-27 = 200) и получить их сумму 100+200=300
select sum(cnt) from data where date(dt) between date('2016-02-26') and date('2016-02-27') group by date(dt) возвращает:
200
400
select sum((select cnt from data where date(dt) between date('2016-02-26') and date('2016-02-27') group by date(dt))) возвращает
200
Отдельно пробовал select cnt from data group by date(dt) - группирует правильно
Этот топик читают: Гость
Ответов: 655
Рейтинг: 18
|
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
карма: 25 |
| ||
файлы: 1 | code_37010.txt [1.1KB] [881] |
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 7 раз(а), последний 2022-04-03 03:43:05 |
|||
карма: 0 |
|
Ответов: 655
Рейтинг: 18
|
|||
Я указываю date('2016-02-26')
|
|||
карма: 0 |
|
Ответов: 824
Рейтинг: 138
|
|||
Gunnman писал(а): Я указываю date('2016-02-26')Gunnman, 12 часов 40 минут дня 26.02.2016 входит в диапазон date('2016-02-26') и 12 часов 42 минути дня 26.02.2016 тоже входит в диапазон date('2016-02-26') В базе у Вас, в поле dt хранится дата с временем, то-бишь - 2016-02-26 12:42:00 |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Gunnman писал(а): Все cnt в течении одного дня имеют одинаковое значение.Если хочется дату, то Where в Select который в скобках. Или, наверное, даже без Where (пробовать надо)
|
|||
карма: 25 |
| ||
Голосовали: | Gunnman |
Ответов: 655
Рейтинг: 18
|
|||
Tad, Дата нужна потому что это таблица-лог, просто я не все столбцы в своем вопросе указал, дабы лишней инфой не грузить.
|
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Тогда нужно было указать
Gunnman писал(а): Все cnt в течении одного дня имеют одинаковое значение.Или это не так ? Анекдот писал(а): Ну и запросы у Вас - сказала база данных и повисла. |
|||
карма: 25 |
|
Ответов: 655
Рейтинг: 18
|
|||
Tad, значения хранящиеся в столбце cnt могут будут одинаковые в течении 1 дня точно, на следующий день неизвестно...поэтому приходится хранить одинаковые значения с разной датой создания.
|
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Тогда наверное так
|
|||
карма: 25 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Может кому пригодится
Логический порядок обработки инструкции SELECT писал(а): 1.FROM2.ON 3.JOIN 4.WHERE 5.GROUP BY 6.WITH CUBE или WITH ROLLUP 7.HAVING 8.SELECT 9.DISTINCT 10.ORDER BY 11.TOP |
|||
карма: 25 |
| ||
Голосовали: | Gunnman |
Ответов: 9
Рейтинг: 0
|
|||
Доброго дня.
Нужна помощь профессионалов. Хочу собрать схемку по экспорту записей из базы данных. Но постоянно получаю ошибку database table is locked при создании таблиц. code_37043.txt |
|||
карма: 0 |
| ||
файлы: 1 | code_37043.txt [5.6KB] [789] |
Ответов: 16884
Рейтинг: 1239
|
|||
Не знаю, кто как, а я, смотря на схему, нифига не понял.
web-beer писал(а): Хочу собрать схемку по экспорту записей из базы данных.CREATE TABLE [новая_таблица] AS SELECT * FROM [исходная_таблица] WHERE условия отбора записей ; * можно заменить списком нужных полей. Кстати, вот эта вся муть
|
|||
карма: 25 |
| ||
Голосовали: | flint2 |
Ответов: 952
Рейтинг: 4
|
|||
Требуется - во всех записях БД сменить название организации-заказчика в связи со сменой наименования.
Таким простецким запросом всё пройдет и ничего не нарушу? update basezakaz set namezakaz='Новое название организации' where namezakaz='Старое название организации' |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
А попрактиковаться на копии БД кто-то запрещает ?
|
|||
карма: 25 |
|