Вверх ↑
Этот топик читают: Гость
Ответов: 636
Рейтинг: 18
#1441: 2016-02-29 15:59:39 ЛС | профиль | цитата
Не могу получить нужный результат запроса!

Есть таблица 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) - группирует правильно



карма: 0

0
Ответов: 16461
Рейтинг: 1211
#1442: 2016-02-29 17:39:37 ЛС | профиль | цитата
Не знаю или правильно тебя понял. (Трудно понять.)
Вроде так.
code_37010.txt
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_37010.txt [1.1KB] [160]
Гость
Ответов: 17029
Рейтинг: 0
#1443: 2016-02-29 17:41:51 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2017-06-20 23:56:06
карма: 0

0
Ответов: 636
Рейтинг: 18
#1444: 2016-02-29 17:48:20 ЛС | профиль | цитата
Я указываю date('2016-02-26')
карма: 0

0
Ответов: 824
Рейтинг: 134
#1445: 2016-02-29 20:50:26 ЛС | профиль | цитата
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

0
Ответов: 16461
Рейтинг: 1211
#1446: 2016-02-29 21:18:13 ЛС | профиль | цитата
#sql
SELECT sum(A) FROM (SELECT cnt As A FROM data GROUP BY cnt );
если у тебя
Gunnman писал(а):
Все cnt в течении одного дня имеют одинаковое значение.
то нахрена тебе дата ?
Если хочется дату, то Where в Select который в скобках.
Или, наверное, даже без Where (пробовать надо)
#sql
SELECT sum(A) FROM (SELECT cnt As A FROM data GROUP BY cnt, date(dt));
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Gunnman
Ответов: 636
Рейтинг: 18
#1447: 2016-02-29 23:13:09 ЛС | профиль | цитата
Tad, Дата нужна потому что это таблица-лог, просто я не все столбцы в своем вопросе указал, дабы лишней инфой не грузить.
карма: 0

0
Ответов: 16461
Рейтинг: 1211
#1448: 2016-02-29 23:37:42 ЛС | профиль | цитата
Тогда нужно было указать
Gunnman писал(а):
Все cnt в течении одного дня имеют одинаковое значение.
но могут повторяться в течении месяца или года.
Или это не так ?
Анекдот писал(а):
Ну и запросы у Вас - сказала база данных и повисла.

карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 636
Рейтинг: 18
#1449: 2016-03-02 16:19:39 ЛС | профиль | цитата
Tad, значения хранящиеся в столбце cnt могут будут одинаковые в течении 1 дня точно, на следующий день неизвестно...поэтому приходится хранить одинаковые значения с разной датой создания.
карма: 0

0
Ответов: 16461
Рейтинг: 1211
#1450: 2016-03-02 16:38:40 ЛС | профиль | цитата
Тогда наверное так
#sql
SELECT sum(A) FROM (SELECT cnt As A FROM data GROUP BY date(dt) ORDER BY date(dt));
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 16461
Рейтинг: 1211
#1451: 2016-03-04 18:48:50 ЛС | профиль | цитата
Может кому пригодится
Логический порядок обработки инструкции SELECT писал(а):
1.FROM
2.ON
3.JOIN
4.WHERE
5.GROUP BY
6.WITH CUBE или WITH ROLLUP
7.HAVING
8.SELECT
9.DISTINCT
10.ORDER BY
11.TOP

карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Gunnman
Ответов: 8
Рейтинг: 0
#1452: 2016-03-12 11:46:15 ЛС | профиль | цитата
Доброго дня.
Нужна помощь профессионалов.
Хочу собрать схемку по экспорту записей из базы данных.
Но постоянно получаю ошибку database table is locked при создании таблиц.

code_37043.txt
карма: 0

0
файлы: 1code_37043.txt [5.6KB] [185]
Ответов: 16461
Рейтинг: 1211
#1453: 2016-03-12 14:49:58 ЛС | профиль | цитата
Не знаю, кто как, а я, смотря на схему, нифига не понял.
web-beer писал(а):
Хочу собрать схемку по экспорту записей из базы данных.

CREATE TABLE [новая_таблица] AS SELECT * FROM [исходная_таблица] WHERE условия отбора записей ;
* можно заменить списком нужных полей.

Кстати, вот эта вся муть
Add(DSC_Query,12791067,749,399){
@Color=22015
SQL="SELECT F, C FROM table1"
DSManager="export"
link(onQuery,1283899:doStr,[])
}
Add(MT_String,1283899,798,399)
{
@Color=22015
Delimeter="; "
link(onResult,324804:doSplit,[])
}
Add(StrPart,324804,854,399)
{
@Color=22015
Char=";"
Point(Left)
Point(Right)
link(onSplit,1667564:doStrCat,[(897,405)(897,440)(842,440)(842,461)])
}
Add(StrCat,1667564,854,455)
{
@Color=22015
link(Str1,324804:Left,[])
link(Str2,324804:Right,[])
}
решается тоже одним запросом:SELECT F||C FROM table1;
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:flint2
Ответов: 927
Рейтинг: 3
#1454: 2016-07-18 22:47:07 ЛС | профиль | цитата
Требуется - во всех записях БД сменить название организации-заказчика в связи со сменой наименования.
Таким простецким запросом всё пройдет и ничего не нарушу?
update basezakaz set namezakaz='Новое название организации' where namezakaz='Старое название организации'
карма: 0

0
Ответов: 16461
Рейтинг: 1211
#1455: 2016-07-19 13:57:06 ЛС | профиль | цитата
А попрактиковаться на копии БД кто-то запрещает ?
карма: 22
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)