Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Может кто-нибудь сталкивался (AK) 23/01/2006 - 11:42:47
      Re: Может кто-нибудь сталкивался (Dinky) 23/01/2006 - 19:18:14
      Re: Может кто-нибудь сталкивался (bac) 23/01/2006 - 20:20:22

> Original message text:
> From: AK - 23/01/2006 - 11:42:47
> Subject:Может кто-нибудь сталкивался
> -----------------
> Ситуация такая:
> Дано
> 1)таблица:
> order_id | order_date
> ---------------------
> 1 | 2005-12-30
> 2 | 2006-01-01
> 3 | 2006-01-01
> 4 | 2006-01-03
> 5 | 2006-01-04
> 2) две даты, например дата1=2006-01-01 и дата2=2006-01-05
>
> Требуется вывести отчет о заказах за (!)каждый день между датами, т.е. должно получиться так
>
> date | # of orders
> ------------------
> 2006-01-01 | 2
> 2006-01-02 | 0
> 2006-01-03 | 1
> 2006-01-04 | 1
> 2006-01-05 | 0
> ------------------
>
> ПС: желательно без подзапросов майскл (4.0.12)
> Заранее благодарен
>
>


From: bac - 23/01/2006 - 20:20:22
Subject:Может кто-нибудь сталкивался
-----------------
Можно создать табличку
CREATE TABLE dtList (
dt DATE NOT NULL PRIMARY KEY
) TYPE=MyISAM;

Добавить в таблицу

insert into dtList VALUES
('2006-01-01'),('2006-01-02'),('2006-01-03'),('2006-01-04'),('2006-01-05'),('2006-01-06'),('2006-01-07'),('2006-01-08'),('2006-01-09'),('2006-01-10'),('2006-01-11'),('2006-01-12'),('2006-01-13'),('2006-01-14'),('2006-01-15'),('2006-11-06'),('2006-01-17'),('2006-01-18'),('2006-01-19'),('2006-01-20'),
('2006-01-21'),('2006-01-22'),('2006-01-23'),('2006-01-24'),('2006-01-25'),('2006-01-26'),('2006-01-27'),('2006-01-28'),('2006-01-29'),('2006-01-30'),('2006-01-31');
и так за каждый день. Табличка будет занимать не так много места

а дальше нет проблем
SELECT DATE_FORMAT(dtList.dt,'%Y-%m-%d') AS 'date', SUM(IF(orders.order_id IS NULL,0, 1)) AS '# of orders'
FROM dtList LEFT JOIN orders ON dtList.dt=orders.order_date
WHERE dtList.dt BETWEEN '2006-01-01' AND '2006-01-05'
GROUP BY dtList.dt


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
26104



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |