|
|
|
новичок
      
участник
Last Login: 10.02.2006 11:44
Сообщ.: 6,
Visits: 67
|
|
Есть табличка, выборка из которой дает такие вот строчки, два столбца:
id Время
1 2006-02-08 14:47:20
3 2006-02-08 15:48:30
17 2006-02-09 12:37:01
159 2006-02-09 08:17:30
229 2006-02-09 08:17:20
359 2006-02-09 09:11:30
370 2006-02-09 11:18:40
452 2006-02-09 17:10:50
.......
и так далее, очень много строк. Вывожу я их так:
my $sth = $dbh->prepare( "SELECT $col1,$col2 FROM table_log");
while ( my @row = $sth->fetchrow_array( ) ){print Tr( td(\@row));}
Помогите пожалуйста сделать следующее, чтобы вывод из таблички был такого вида, два столбца:
Дата Кол-во записей
2006-02-08 2
2006-02-09 6
Тоесть, чтобы за каждое число посчиталось кол-во записей. Я в перле еще не совсем разобрался, подскажите пожалуйста, как такое можно запрограммировать? Огромное всем спасибо!
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
Perl здесь ни при чем. Тебе нужно написать slq запрос возвращающий нужные данные. Конкретно тебе нужно сделать группировку по полю с датой, отрезав от нее время.
Примерно так: SELECT dateField, COUNT(*) FROM table_log GROUP BY dateField
Это неполный запрос так как конкретная реализация "обрезания" даты зависит от используемой базы данных.
|
|
|
|
|
новичок
      
участник
Last Login: 10.02.2006 11:44
Сообщ.: 6,
Visits: 67
|
|
БД mysql,
`dateField` datetime NOT NULL default '0000-00-00 00:00:00'.
подскажите, как правильно обрезать, GROUP BY left(dateField,10) будет правильно?
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
Должно прокатить. То есть весь запрос будет выглядеть так
SELECT left(dateField,10), COUNT(*) FROM table_log GROUP BY left(dateField,10)
|
|
|
|
|
новичок
      
участник
Last Login: 10.02.2006 11:44
Сообщ.: 6,
Visits: 67
|
|
|
|
|
|
новичок
      
участник
Last Login: 10.02.2006 11:44
Сообщ.: 6,
Visits: 67
|
|
[quote="bazile"]Должно прокатить. То есть весь запрос будет выглядеть так
SELECT left(dateField,10), COUNT(*) FROM table_log GROUP BY left(dateField,10)[/quote]
Если можно, еще подскажите пожалуйста, как запрограммировать представление 3х таблиц (по два столбца каждая) в одной таблице (с одним столбцом). Как бы три выборки с разными критериями на одной страничке. Здесь как я понимаю уже sql не причем...
Чтобы получилось при выводе на странице примерно вот так:
столбец1 столбец2 столбец3
2006-02-08 2 2006-02-08 10 2006-02-08 5
2006-02-09 6 2006-02-09 20 2006-02-09 0
2006-02-10 3 2006-02-09 5 2006-02-10 0
... ... ...
Я бы мог просто сделать на одной странице последовательный вывод 3х выборок, но читать когда 3 столбца и в каждом по два гораздо приятнее :)
Подскажите пожалуйста если знаете.
|
|
|
|