Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Сложный SQL запрос (https://forum.antichat.xyz/showthread.php?t=106114)

OdaN 13.02.2009 14:26

Сложный 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" =((

.:EnoT:. 13.02.2009 14:38

Цитата:

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

Цитата:

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

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

Код:

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


Или поясни поподробнее )

OdaN 13.02.2009 14:44

Код:

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

VDShark 13.02.2009 14:46

"де категория равна 0"
Я так понял где stat равен нулю? Тогда как то так
Код:

SELECT `cat`, SUM(`summ`) as `sum`
FROM `table`
WHERE `stat`=0
GROUP BY `cat`
ORDER BY `sum`

И еще... где тут собственно сложный запрос то? :)

OdaN 13.02.2009 14:50

VDShark, спасибо =)


Время: 20:07