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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Не получается составить правильный запрос!
 
 автор: gus   (18.08.2009 в 16:18)   письмо автору
 
 

Всем привет!

Есть такой запрос
$sql = "SELECT DISTINCT SUBSTRING(date, 1, 10) as date FROM `" . MYSQL_TABLE . "` WHERE cameraid=" . $id . " ORDER by date desc ".$limit_days;

Он возвращает все уникальные дни из таблицы. в день около 3000 записей.
У некоторых записей status равен 1 или 0 как узнать в этомже запросе есть ли в этом дне хоть одна запись с статусом не равным 0 ?

Пробовал так:
$sql = "SELECT DISTINCT SUBSTRING(date, 1, 10) as date, status FROM `" . MYSQL_TABLE . "` WHERE cameraid=" . $id . " GROUP BY date ORDER by date desc ".$limit_days;

тогда дни в которых есть события выводятся дважды.,

как быть?

  Ответить  
 
 автор: Trianon   (18.08.2009 в 16:31)   письмо автору
 
   для: gus   (18.08.2009 в 16:18)
 

SELECT DATE(`date`) AS `dt`, SUM(`status`) AS sumstatus
  FROM `tbl` 
  GROUP BY `dt`

  Ответить  
 
 автор: gus   (18.08.2009 в 17:00)   письмо автору
66.4 Кб
 
   для: Trianon   (18.08.2009 в 16:31)
 

Спасибо сделал:
SELECT DISTINCT DATE(date) as date, SUM(status) AS status FROM `webcam` WHERE cameraid=1 GROUP BY date ORDER by date desc

Прикрепляю результат ввиде скриншота:

Как сделать чтобы выводило только если status = 1 а то он выводит и если 1 и если 0 .

  Ответить  
 
 автор: Trianon   (18.08.2009 в 17:16)   письмо автору
 
   для: gus   (18.08.2009 в 17:00)
 

Здесь не требуется DISTINCT .

Вы переписали алиасы так, что их имена стали совпадать с именами полей задействованных таблиц .
Это крайне неряшливый подход, и он частенько провоцирует ошибки.

>Как сделать чтобы выводило только если status = 1 а то он выводит и если 1 и если 0 .
Нужно применить HAVING status

  Ответить  
 
 автор: gus   (19.08.2009 в 10:13)   письмо автору
 
   для: Trianon   (18.08.2009 в 17:16)
 

Спасибо ваш совет помог. сделат точно как вы написали и всё заработало! спасибо!

  Ответить  
Rambler's Top100
вверх

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