Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

13.02.2009, 14:26
|
|
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
Провел на форуме: 473495
Репутация:
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" =((
|
|
|

13.02.2009, 14:38
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
нет, cat - это кошка
дык вот, надо отсюда родить сумму "summ" для каждой категории, приэтом суммировать только где категория равна 0, и отсортировать по этой сумме.
Не совсем понял понял слова суммировать, т.к. на сколько я понял у тебя уже готовые суммы хранятся. Или поясни с чем суммировать?
В общем из того что я понял, запрос будет примерно таким:
Код:
SELECT `summ` FROM `table`
WHERE `id` IN(1,2,3)
AND `cat` = '0'
ORDER by `summ` ASC
Или поясни поподробнее )
|
|
|

13.02.2009, 14:44
|
|
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
Провел на форуме: 473495
Репутация:
39
|
|
Код:
select sum(summ) from table where cat='5' and stat='0';
Оно выдаст результат для 5ой категории, и равен он буит 170. А мине нать тоже самое, тока сразу для всех категорий, и упорядочить по ентой сумме, которя sum()
|
|
|

13.02.2009, 14:46
|
|
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме: 804931
Репутация:
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..
Причина: Про сортировку не увиделс
|
|
|

13.02.2009, 14:50
|
|
Участник форума
Регистрация: 04.03.2006
Сообщений: 159
Провел на форуме: 473495
Репутация:
39
|
|
VDShark, спасибо =)
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|