Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как посчитать сумму одного столбца таблицы по двум критериям?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
sc2r2bey
Отправлено: 14 Сентября, 2009 - 11:57:53
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




как посчитать сумму одного столбца таблицы по двум критериям?
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $master = "SELECT * FROM master ORDER BY id";
  3. $master_query = mysql_query("$master");
  4. while ($master_select = mysql_fetch_assoc($master_query))
  5.         {
  6.             echo $master_select['name'];
  7.             $summa = "SELECT * FROM visit WHERE date= '".$day."' AND id_master= '".$master_select['id']."'";
  8.  
  9.             $summa_query = mysql_query("$summa ");
  10.             while ($summa_select = mysql_fetch_assoc($summa_query))
  11.             {
  12.             $s += $summa_select['summa'];
  13.             echo $s;
  14.             }
  15.  
  16.         }
  17. }
  18.  


вот так он выдает всю прогрессию суммы, а мне надо конечную цифру

(Отредактировано автором: 14 Сентября, 2009 - 12:23:01)

 
 Top
zeit
Отправлено: 14 Сентября, 2009 - 12:05:18
Post Id


Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Конкретней изложите главную мысль. Что значит по двум критериям?
 
 Top
sc2r2bey
Отправлено: 14 Сентября, 2009 - 12:11:08
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




zeit пишет:
Конкретней изложите главную мысль. Что значит по двум критериям?

т.е. не все строки, а те столбцы у которых например 2 столбца соответствую заданным условиям.
 
 Top
Champion Супермодератор
Отправлено: 14 Сентября, 2009 - 12:16:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




select sum(столбец) from tbl where два критерия
 
 Top
zeit
Отправлено: 14 Сентября, 2009 - 12:21:21
Post Id


Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




CODE (text):
скопировать код в буфер обмена
  1. select sum(t.id) from table as t where = условие;

(Отредактировано автором: 14 Сентября, 2009 - 12:22:59)

 
 Top
sc2r2bey
Отправлено: 14 Сентября, 2009 - 12:21:28
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




Champion пишет:
select sum(столбец) from tbl where два критерия

а как потом на php результат вывести?
делаю
CODE (text):
скопировать код в буфер обмена
  1. $master = "SELECT * FROM master ORDER BY id"; // Зачем?
  2. $master_query = mysql_query("$master");
  3. while ($master_select = mysql_fetch_assoc($master_query))
  4.         {
  5.             echo $master_select['name'];
  6.             $summa = "SELECT SUM('summa') FROM visit WHERE date= '".$day."' AND id_master= '".$master_select['id']."'"; // Зачем? И почему имя поля в кавычках?
  7.             $summa_query = mysql_query("$summa ");
  8.             echo $summa_query; // А что ты хотел увидеть ?
  9.             $summa_select = mysql_fetch_assoc($summa_query);
  10.             {
  11.             echo $summa_select['summa'];
  12.             }
  13.  
  14.  
  15.         }
  16. }

выводит
Цитата:
Resource id #13


Отредактировано модератором: Champion, 14 Сентября, 2009 - 12:33:41
В комментариях пометил самые удивительные строки
 
 Top
Champion Супермодератор
Отправлено: 14 Сентября, 2009 - 12:31:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




А зачем ты вот это вот всё сделал?
 
 Top
sc2r2bey
Отправлено: 14 Сентября, 2009 - 12:40:22
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




Champion пишет:
А зачем ты вот это вот всё сделал?

по другому пока не знаю как сделать Улыбка
 
 Top
Champion Супермодератор
Отправлено: 14 Сентября, 2009 - 12:41:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Так я ж тебе написал. Как ты думаешь, что этот запрос делает?
 
 Top
sc2r2bey
Отправлено: 14 Сентября, 2009 - 12:43:43
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




Champion пишет:
Так я ж тебе написал. Как ты думаешь, что этот запрос делает?

я понял, а как результат запроса вывести?
 
 Top
Champion Супермодератор
Отправлено: 14 Сентября, 2009 - 12:44:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




получить mysql_fetch_, вывести echo. Но только ты чтото странное делаешь.
"SELECT * FROM master ORDER BY id"; Зачем это?
 
 Top
sc2r2bey
Отправлено: 14 Сентября, 2009 - 12:51:06
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




Champion пишет:
получить mysql_fetch_, вывести echo. Но только ты чтото странное делаешь.
"SELECT * FROM master ORDER BY id"; Зачем это?


я вот так делаю
$summa_select = mysql_fetch_assoc($summa_query);
{
echo $summa_select['summa'];
}
он выводит Resource id #13 а должна быть сумма

"SELECT * FROM master ORDER BY id";
я выбираю все поля одной таблицы, а потом в другой таблице выбираю соответствующие строки для первой
 
 Top
Champion Супермодератор
Отправлено: 14 Сентября, 2009 - 13:05:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




sc2r2bey пишет:
$summa_select = mysql_fetch_assoc($summa_query);
{
echo $summa_select['summa'];
}
Нет, так ты не делаешь. Читай свой же код сверху и мои комментарии в нем. У тебя написано
$summa_query = mysql_query("$summa ");
echo $summa_query;
sc2r2bey пишет:
я выбираю все поля одной таблицы, а потом в другой таблице выбираю соответствующие строки для первой
можно делать выбоурку из 2 таблиц. Прочитай про JOIN
 
 Top
sc2r2bey
Отправлено: 14 Сентября, 2009 - 21:51:17
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




попробую снова задачу поставить, есть таблица master в ней 2 поля id и name, т.е идентификатор и имя мастреа, есть 2-я таблица visit в ней много полей в частность id_master, summa и date соотетсвтенно идентификатор мастера, некое число и дата посещения, как сделать, чтоб отобразить всех мастеров по порядку, плюс рядом общую сумму чисел, которые были записаны в определенную дату?
 
 Top
Champion Супермодератор
Отправлено: 15 Сентября, 2009 - 08:42:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




SELECT m.id, m.name, sum(чего-то там)
FROM master m JOIN visit v ON v.master_id = m.id
WHERE date = 'определенная дата'
GROUP BY m.id, m.name
ORDER BY m.name
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB