SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 05.11.2010 02:59:42

used2bepatron
Участник
Зарегистрирован: 03.11.2010
Сообщений: 4

Как реализовать такой запрос

Имеется 2 таблицы worklist, workers

worklist
id_wlist    id_worker    id_client
1            1              1
2            2              1
3            1              2
4            1              1
   
   
workers
id_worker    name_worker     rate_worker
   1            ivan            100     
   2            vovan           150                                       

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

наподобие этого: (не работает sad )
SUM(SELECT (COUNT(id_wlist)*workers.rate_worker) from worklist LEFT JOIN workers USING (id_worker) WHERE id_client='1' GROUP BY id_worker)

Неактивен

 

#2 05.11.2010 03:56:34

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Как реализовать такой запрос

Для конкретного клиента

select name_worker, sum(rate_worker)
from worklist join workers USING (id_worker)
WHERE id_client='1' group by id_worker;


для всех клиентов
select id_client, name_worker, sum(rate_worker)
from worklist join workers USING (id_worker)
group by 1,id_worker;

Неактивен

 

#3 05.11.2010 06:14:06

used2bepatron
Участник
Зарегистрирован: 03.11.2010
Сообщений: 4

Re: Как реализовать такой запрос

vasya написал:

Для конкретного клиента

select name_worker, sum(rate_worker)
from worklist join workers USING (id_worker)
WHERE id_client='1' group by id_worker;

Спасибо ОГРОМНОЕ!
а как теперь подсчитать сумму всех полученных значений ( sum(rate_worker) )?

Неактивен

 

#4 05.11.2010 06:30:54

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Как реализовать такой запрос

WITH ROLLUP добавте

Неактивен

 

#5 05.11.2010 06:47:04

used2bepatron
Участник
Зарегистрирован: 03.11.2010
Сообщений: 4

Re: Как реализовать такой запрос

А как можно избавиться от всех сумм и оставить только одно общую?
т.к. данный запрос используется как подзапрос и нужно выбрать только общую сумму (Subquery returns more than 1 row)

Спасибо еще раз !!!

Неактивен

 

#6 05.11.2010 06:52:13

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Как реализовать такой запрос

select sum(rate_worker)
from worklist join workers USING (id_worker)
WHERE id_client='1';

Неактивен

 

#7 05.11.2010 14:14:52

used2bepatron
Участник
Зарегистрирован: 03.11.2010
Сообщений: 4

Re: Как реализовать такой запрос

vasya написал:

select sum(rate_worker)
from worklist join workers USING (id_worker)
WHERE id_client='1';

Спасибо огромное за помощь!!!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson