Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Помогите составить MYSQL запрос
tureg1  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местный житель
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 152
Пользователь №: 21751
На форуме: 6 лет, 7 месяцев, 25 дней
Карма:




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

id|id_project|user|summa
1 23 32 150
2 23 32 250
3 23 32 170
4 23 12 50




Нужно подсчитать для юзера в каких проектах он участвовал (он мог участвовать много раз в одном проекте) и подсчитать общую сумму по юзеру

Вывод должен быть таким:
Проект #23
Сумма: такая то

Я придумал какой то сложный и как мне кажется не правильный алгоритм:
1. Собрать все записи с юзером
2. Собрать номера проектов
3. Удалить повторяющиеся номера проектов
4. Снова сделать запрос из оставшихся номеров проектов и по ним сделать суммирование

мне кажется можно сделать как то проще
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4258
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 7 дней
Карма: 147




что значит "подсчитать для юзера в каких проектах он участвовал"?
количество проектов чтоли?
select
user,
count(id_project) as cnt_p,
sum(summa) as pays
from table
group by

user
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14975
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 2 дня
Карма: 444




У тебя в алгоритме не понятно, что делать, если встречаются одинаковые номера проектов для юзера и для них разные значения в поле summa. Ты говоришь, что оставить одну запись - какую именно, по какому критерию выборку делать? Или то, о чем redreem спросил?


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
tureg1  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местный житель
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 152
Пользователь №: 21751
На форуме: 6 лет, 7 месяцев, 25 дней
Карма:




нужно подсчитать сколько денег вложил юзер в каждый проект
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 18 дней
Карма: 167




tureg1, вам redreem подсказал в каком направлении копать, только там группировка по двум полям нужна, а не только по юзеру.



--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Кароч, сделал как изначально придумал.

$result110=mysql_query("SELECT DISTINCT id_project FROM sbors WHERE `user`=$user_id");	
while($r110=mysql_fetch_array($result110)){

$result290=mysql_query("SELECT * FROM projects WHERE id=$r110[id_project]");
$r290=mysql_fetch_array($result290);
$title_pr = $r290["title"];

echo "$title_pr<br>";
$tow_6 = mysql_query("SELECT SUM(`summa`) FROM `sbors` WHERE `id_project`=$r110[id_project] AND `user`=$user_id");
$tow_6 = mysql_fetch_row($tow_6);
$vklad_po_proektu = $tow_6[0];
echo "$vklad_po_proektu<br><br>";
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса