SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.10.2010 16:22:22

nikolajtesla
Завсегдатай
Зарегистрирован: 12.10.2010
Сообщений: 25

Помочь с запросом

Зравствуйте,
Есть таблица
CREATE TABLE IF NOT EXISTS `tbl` (
  `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `date` date NOT NULL,
  `type` enum('1','2','3') NOT NULL,
  `number` tinyint(3) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `date` (`date`)
) ENGINE=MyISAM;

Необходимо создать запрос, который выведет для каждой даты такой результат.
date, количество строк для этой даты с type =1,  количество строк для этой даты с type =2,  количество строк для этой даты с type =3, сумма number для всех строк этой даты с type=1, сумма number для всех строк этой даты с type=2, сумма number для всех строк этой даты с type=3

Например при значениях
1     2010-10-07     2     50
2     2010-10-07     2     50
3     2010-10-07     2     50
4     2010-10-07     1     25
5     2010-10-07     2     50
6     2010-10-07     1     25
7     2010-10-08     2     43
8     2010-10-08     1     20
9     2010-10-08     1     20
10     2010-10-08     1     20
11     2010-10-08     1     10

должно вывести
2010-10-07, 2, 4, 0, 50, 200, 0
2010-10-08, 4, 1, 0, 70, 43,0

пытался сделать самостоятельно, но в один запрос никак не получилось.
Огромное спасибо

Неактивен

 

#2 12.10.2010 21:45:17

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помочь с запросом

select `date`, t1.c, t1.s,t2.c,t2.s from
(select `date`, `type`, count(`type`) c, sum(number) s from tbl
where `type`=1 group by `date`)t1
join (select `date`, `type`, count(`type`) c, sum(number) s from tbl
where `type`=2 group by `date`)t2 using(`date`);

Для type=3 по аналогии продолжите сами.

Но лучше сделать
select `date`, `type`, count(`type`), sum(number) from tbl group by `date`,`type`;

и обработать результат в приложении.

P.S. Не нужно дублировать темы в разных разделах форума.

Неактивен

 

#3 12.10.2010 23:17:23

nikolajtesla
Завсегдатай
Зарегистрирован: 12.10.2010
Сообщений: 25

Re: Помочь с запросом

Спасибо огромное.
Вот только второй вариант мне в голову и пришел.

За 2 темы извиняюсь

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson