Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Хитрый запрос...

Сообщения:  [1-6] 

 
 автор: Trianon   (16.06.2009 в 01:01)   письмо автору
 
   для: Cyrax   (15.06.2009 в 23:39)
 

Значит не показалось.
Я все Ваши "задачи" буду решать одним способом.

  Ответить  
 
 автор: Cyrax   (15.06.2009 в 23:39)   письмо автору
 
   для: Trianon   (15.06.2009 в 19:55)
 

>потому что синтаксическая ошибка.
2 синтаксические и 2 семантические
Позже напишу корректный запрос, чтобы ветка обладала свойством "завершённости"

>А какой ответ Вы ждете?
>(особенно после Вашего экзерсиса в id_theme=64913)
"2 синтаксические и 2 семантические ошибки"
А вы ещё не решили ту задачу одним запросом ???

  Ответить  
 
 автор: Trianon   (15.06.2009 в 19:55)   письмо автору
 
   для: Cyrax   (15.06.2009 в 19:26)
 

потому что синтаксическая ошибка.
А какой ответ Вы ждете?
(особенно после Вашего экзерсиса в id_theme=64913)

  Ответить  
 
 автор: Cyrax   (15.06.2009 в 19:26)   письмо автору
 
   для: 23423   (15.06.2009 в 18:15)
 

Выполните запрос:

CREATE TABLE IF NOT EXISTS `test` (
`id` int(10) unsigned NOT NULL auto_increment,
`Date` int(11) default NULL,
`Count` int(11) default NULL,
`Remainder` int(11) default NULL,
`Article` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1250 AUTO_INCREMENT=11 ;

INSERT INTO `test` (`id`, `Date`, `Count`, `Remainder`, `Article`) VALUES
(1, 10111, 1, 0, 1),
(2, 10111, 2, 1, 1),
(3, 40444, 2, 2, 1),
(4, 10116, 2, 0, 2),
(5, 10116, 3, 2, 2),
(6, 40449, 3, 3, 2),
(7, 30333, -1, 3, 1),
(8, 50555, -1, 4, 1),
(9, 30338, -2, 5, 2),
(10, 50559, -2, 6, 2);

Далее выполните запрос:
select Article, sum(select `Count` where `Date` = Dates.startDate)
from test, (select MIN(InTest.`date`) AS startDate FROM test InTest WHERE InTest.`article` = `article`) Dates
group by Article

Вопрос: почему запрос не работает ?

  Ответить  
 
 автор: 23423   (15.06.2009 в 18:15)
 
   для: Cyrax   (15.06.2009 в 16:55)
 

Вы так хорошо объясняете. Приятно читать!

  Ответить  
 
 автор: Cyrax   (15.06.2009 в 16:55)   письмо автору
 
 

Имеется таблица:

CREATE TABLE IF NOT EXISTS `test` (
`id` int(10) unsigned NOT NULL auto_increment,
`Date` int(11) default NULL,
`Count` int(11) default NULL,
`Remainder` int(11) default NULL,
`Article` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1250 AUTO_INCREMENT=11 ;

INSERT INTO `test` (`id`, `Date`, `Count`, `Remainder`, `Article`) VALUES
(1, 10111, 1, 0, 1),
(2, 10111, 2, 1, 1),
(3, 40444, 2, 2, 1),
(4, 10116, 2, 0, 2),
(5, 10116, 3, 2, 2),
(6, 40449, 3, 3, 2),
(7, 30333, -1, 3, 1),
(8, 50555, -1, 4, 1),
(9, 30338, -2, 5, 2),
(10, 50559, -2, 6, 2);

Не обращая внимания на логику структуры, выполняем запрос:
select Article, sum(select `Count` where `Date` = Dates.startDate)
from test, (select MIN(InTest.`date`) AS startDate FROM test InTest WHERE InTest.`article` = `article`) Dates
group by Article

Как корректно построить этот запрос ? Не обращаем внимание на тип даты (для удобства сделал число).
Необходимо вывести список Articles'ов и для каждого из них вывести сумму полей "Count" с минимальной датой:
1 3
2 5

При этом в запросе таблица Dates должна находиться именно в разделе from основного запроса + использование группировки.
При таких требованиях запрос реализуем ?

  Ответить  

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования