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




MySQL.RU - Webboard



Вернуться
Помогите начинающему (Dimarzio) 20/10/2008 - 17:01:01
      Re: Помогите начинающему (bac) 20/10/2008 - 22:11:15

> Original message text:
> From: Dimarzio - 20/10/2008 - 17:01:01
> Subject:Помогите начинающему
> -----------------
> Пожалуйста, помогите составить запрос.
>
> Есть таблица cases с полями
> id, case_name
>
> и таблица history с полями
> id, case_id, date, status
>
> требуется вывести все данные из таблицы cases таким образом, чтобы для каждого case_name из таблицы history был выбран 1 самый последний по дате (date) статус.
>
> Для каждого case_name в базе может быть множество status.
> Помогите, замучался.
>


From: bac - 20/10/2008 - 22:11:15
Subject:Помогите начинающему
-----------------
Вот нечто. Возможно еще можно покумекать :)
--DROP TABLE cases;
CREATE TABLE cases (
id INTEGER AUTO_INCREMENT PRIMARY KEY ,
case_name VARCHAR(30)
);

INSERT INTO cases (case_name) VALUES
('Касе 1'),('Касе 2'),('Касе 3'),('Касе 4'),('Касе 5'),('Касе 6');

--DROP TABLE history;
CREATE TABLE history (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
case_id INTEGER,
`date` DATE,
`status` INTEGER
);

INSERT INTO history (case_id, `date`, `status`) VALUES
(1,'2008-01-01',1),(2,'2008-01-01',1),(3,'2008-01-01',1),(4,'2008-01-01',1),(5,'2008-01-01',1),(6,'2008-01-01',1),
(1,'2008-01-02',2),(2,'2008-01-02',2),(3,'2008-01-02',2),(4,'2008-01-02',2),(5,'2008-01-02',2),
(1,'2008-01-03',3),(2,'2008-01-03',3),(3,'2008-01-03',3),(4,'2008-01-03',3),
(1,'2008-01-04',4),(2,'2008-01-04',4),(3,'2008-01-04',4),
(1,'2008-01-05',5),(2,'2008-01-05',5),
(1,'2008-01-06',6);

SELECT hist.`date`, case_name, hist.`status`
FROM cases
INNER JOIN (
SELECT history.case_id, history.`date`, history.status
FROM history, (
SELECT case_id, MAX(`date`) `date`
FROM history
GROUP BY case_id
) AS hm
WHERE history.case_id = hm.case_id AND history.`date` = hm.`date`
) AS hist
ON (hist.case_id = cases.id)



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

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

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



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