HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Сложный SQL запрос
  #1  
Старый 13.02.2009, 14:26
OdaN
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
С нами: 10625303

Репутация: 39
По умолчанию Сложный SQL запрос

Народ, помогите составить запрос, а то всю голову сломал.
Есть таблица:

Код:
+----+------+-------+-----+
| id | stat | summ  | cat |
+----+------+-------+-----+
|  7 |    0 |   100 |   4 |
|  6 |    1 | 16542 |   1 |
|  8 |    0 |    70 |   5 |
|  9 |    0 |   100 |   5 |
| 10 |    0 |   200 |   3 |
| 11 |    0 |    97 |   4 |
| 12 |    1 |    43 |   6 |
| 13 |    0 |    27 |   7 |
| 14 |    0 |    14 |   4 |
| 15 |    0 |   387 |   2 |
| 16 |    0 |    66 |   4 |
| 17 |    0 |    40 |   7 |
| 18 |    0 |  3500 |   8 |
| 19 |    0 |   140 |   2 |
| 20 |    0 |    45 |   4 |
| 21 |    0 |    36 |   4 |
| 22 |    0 |    25 |   9 |
+----+------+-------+-----+
id - понятно, stat -статус, summ - сумма, cat - категория.
дык вот, надо отсюда родить сумму "summ" для каждой категории, приэтом суммировать только где категория равна 0, и отсортировать по этой сумме.

Из моих мучений максимум родился скрипт который по очереди считает для каждой категории, но он не сортирует по сумме "summ" =((
 
Ответить с цитированием

  #2  
Старый 13.02.2009, 14:38
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 850
С нами: 9975266

Репутация: 1916


По умолчанию

Цитата:
cat - категория
нет, cat - это кошка

Цитата:
дык вот, надо отсюда родить сумму "summ" для каждой категории, приэтом суммировать только где категория равна 0, и отсортировать по этой сумме.
Не совсем понял понял слова суммировать, т.к. на сколько я понял у тебя уже готовые суммы хранятся. Или поясни с чем суммировать?

В общем из того что я понял, запрос будет примерно таким:

Код:
SELECT `summ` FROM `table`
WHERE `id` IN(1,2,3)
AND `cat` = '0'
ORDER by `summ` ASC

Или поясни поподробнее )
 
Ответить с цитированием

  #3  
Старый 13.02.2009, 14:44
OdaN
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
С нами: 10625303

Репутация: 39
По умолчанию

Код:
select sum(summ) from table where cat='5' and stat='0';
Оно выдаст результат для 5ой категории, и равен он буит 170. А мине нать тоже самое, тока сразу для всех категорий, и упорядочить по ентой сумме, которя sum()
 
Ответить с цитированием

  #4  
Старый 13.02.2009, 14:46
VDShark
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
С нами: 10143686

Репутация: 526
По умолчанию

"де категория равна 0"
Я так понял где stat равен нулю? Тогда как то так
Код:
SELECT `cat`, SUM(`summ`) as `sum`
FROM `table`
WHERE `stat`=0
GROUP BY `cat`
ORDER BY `sum`
И еще... где тут собственно сложный запрос то?

Последний раз редактировалось VDShark; 13.02.2009 в 14:48.. Причина: Про сортировку не увиделс
 
Ответить с цитированием

  #5  
Старый 13.02.2009, 14:50
OdaN
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
С нами: 10625303

Репутация: 39
По умолчанию

VDShark, спасибо =)
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.