суммировать и вернуть мне окончательную цифру

contive

Постоялец
Регистрация
24 Апр 2009
Сообщения
122
Реакции
23
Пример.
Есть примерно такая таблица:

personal

| id | name | hiredata | salary | award |
| 1 | Ivan Ivanovich | 25.03.1998 | 800 | yes
| 2 | Andrey Andreev | 18.06.2001 | 500 | yes
| 3 | Victor Petechkin | 02.10.2007 | 1000 | no

Запрос на время, которое сотрудник работает в конторе и имеет право на премию (в днях) :

PHP:
$dt = mysql_query("SELECT `hiredata` FROM `personal` WHERE id = $employeeid AND `award`='yes'") or die(mysql_error());
while($row=mysql_fetch_array($dt)) {
$row['hiredata'];
$query = mysql_query("SELECT DATEDIFF(NOW(),'" . $row[' hiredata '] . "') as date_difference") or die(mysql_error());
}
while($row=mysql_fetch_array($query)) {
$livetime = $row['date_difference'];
}

Запрос на размер оклада сотрудника (salary) который имеет право на премию (award) :

PHP:
$query = mysql_query("SELECT `salary ` FROM `personal` WHERE id = $employeeid AND `award`='yes'" ); 
$row = mysql_fetch_row($query);
$award = $row[0];

Теперь вот, что мне примерно нужно: взять кол-во дней, которое вернула переменная $livetime, умножить её на размер оклада сотрудника, которое вернула переменная $award. Сделать это для каждого сотрудника который имеет право на премию, суммировать и вернуть мне окончательную цифру.

P.S. это всего лишь пример того, что мне нужно, дай Бог чтобы всем так премии считали :)
 
Сумма по сотрудникам:
Код:
SELECT DATEDIFF(NOW(),`hiredata`)*`salary` FROM `personal` WHERE `award`='yes';

Общая сумма:
Код:
SELECT sum(DATEDIFF(NOW(),`hiredata`)*`salary`) FROM `personal` WHERE `award`='yes'
 
Я как всегда объяснил не так, как я себе это представляю.
sorry about that.

Нужно вытянуть id всех сотрудников которые `award`='yes' и по очереди подставлять их id в этот запрос в переменную $employeeid:
PHP:
SELECT `salary` FROM `personal` WHERE id = $employeeid AND `award`='yes'
выполнить if else
PHP:
$employeeid_i = $employeeid;
if ($employeeid <= 800)
{
$$employeeid_i = 0.1;
}
else
{
$$employeeid_i = 0.2;
}
вернуть мне результат для конкретно этого id с коэффициентом, и так по всем сотрудникам у которых `award`='yes'

т.е. мне нужно каждому сотруднику определить его коэффициент в зависимости от его оклада, перемножить этот коэффициент на оклад, получив результаты умножений для всех сотрудников нужно их суммировать в одно число.
как-то так %)

решилось с помощью вложенных селектов
Для просмотра ссылки Войди или Зарегистрируйся

спасибо за помощь.
 
Назад
Сверху