![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с запросом [D7, dBase, FoxPro]
Goast © (2005-12-15 14:38:00)Здравствуйте мастера…. ….есть таблица телефонных звонков
8:01 ляля тратра бебе
8:14 ляля тратра бебе
8:34 ляля тратра бебе
9:10 ляля тратра бебе
10:05 ляля тратра бебе
10:44 ляля тратра бебе
Возможно ли одним sql запросом вывести след. информацию
От до кол-во звонков
8:00 9:00 3
9:00 10:00 1
10:00 11:00 2
Т.е. вывести сколько же записей (звонков) соответствует конкретному промежутку времени…надеюсь вы меня поняли…всю голову сломал кроме как делать 24 sql запроса и в каждом считать кол-во записей умнее ничего не придумал…Спасибо
palva (2005-12-15 22:32:00) [1]Вы, естественно, работаете на MySQL. Привожу работающий скрипт
DROP TABLE IF EXISTS timdat;
CREATE TABLE timdat (t TIME, emp VARCHAR(10));
INSERT INTO timdat(t) values
('2:08'),('2:09'),('2:10'),('3:08'),('4:08'),('4:09'),('23:08');
SELECT HOUR(t) AS 'от', HOUR(t)+1 AS 'до', COUNT(t) AS 'колич'
FROM timdat GROUP BY 'от' ORDER BY 'от';
от до колич
2 3 3
3 4 1
4 5 2
23 24 1
sniknik (2005-12-15 17:04:00) [2]> все очень просто все поля string
начинать надо от типа базы, подключения, после поля.
как
SELECT Int(Left(TimeField, InStr(TimeField, ':')-1)) as TimeFld, Count(*) as Col
FROM Table1
GROUP BY Int(Left(TimeField, InStr(TimeField, ':')-1))
ORDER BY 1
но не скажу где. ;)
Johnmen (2005-12-15 16:34:00) [3]>Goast (15.12.05 16:27) [10]
>все очень просто все поля string
Прошу прощения, но этот случай клинический :)
А значит никак...
Goast (2005-12-15 16:27:00) [4]
> Johnmen © (15.12.05 16:25) [9]
> Ну господа, я же не знаю, что у вас каких типов!
все очень просто все поля string
Johnmen (2005-12-15 16:25:00) [5]Ну господа, я же не знаю, что у вас каких типов!
Goast (2005-12-15 16:07:00) [6]
> highlander © (15.12.05 16:06) [7]
>
> > ФункцияВыделенияЧасов(TimeField),
>
> А вот интересно - как организовать такую функцию и как она
> будет выглядеть??
надеюсь вы не у меня спрашиваете?! т.к. я даже не представляю...;)
highlander (2005-12-15 16:06:00) [7]
> ФункцияВыделенияЧасов(TimeField),
А вот интересно - как организовать такую функцию и как она будет выглядеть??
Goast (2005-12-15 16:02:00) [8]
> ФункцияВыделенияЧасов(TimeField),
какая функция выделиня часов в sql pos-не катит...:)
Goast (2005-12-15 15:39:00) [9]
> Sergey13 © (15.12.05 15:16) [4]
> 2 [3] Goast (15.12.05 15:09)
> > походу придется делать 24 запроса....:)
> Сделай один. Но с 24 union-ами. 8-)
издеваются блин....:(
Sergey13 (2005-12-15 15:16:00) [10]2 [3] Goast (15.12.05 15:09)
> походу придется делать 24 запроса....:)
Сделай один. Но с 24 union-ами. 8-)
Goast (2005-12-15 15:09:00) [11]
> -=S..S=- (15.12.05 15:00) [2]
> можно отрезать в значении времени до ":" и сгрупировать
> по этому
> select count(*), Left( field1 , 7 ) AS y from table group
> by y, order by field1 desc
> что то в этом духе ... но не помню как взять символы до
> ":" потому как может быть двух значное число. поищи что
> то типа pos может поддержывает
ничего не понял....:( походу придется делать 24 запроса....:)
-=S..S=- (2005-12-15 15:00:00) [12]можно отрезать в значении времени до ":" и сгрупировать по этому
select count(*), Left( field1 , 7 ) AS y from table group by y, order by field1 desc
что то в этом духе ... но не помню как взять символы до ":" потому как может быть двух значное число. поищи что то типа pos может поддержывает
Johnmen (2005-12-15 14:59:00) [13]Одним запросом для dBase, FoxPro вряд ли...:)
А общая схема:
SELECT
ФункцияВыделенияЧасов(TimeField),
ФункцияВыделенияЧасов(TimeField) + <1 час>,
COUNT(*)
FROM Table
GROUP BY <I поле запроса>