2017-02-13 7 views
1

У меня есть две таблицы с менеджерами и клиентами. Так «клиент» таблица следующие поля:Как я могу добавить тот же столбец при дополнительных условиях?

1. id_client 
2. email 
3. name 
4. id_manager 
5. made_a_deal (bool field) 

И таблица "менеджеров имеет следующие поля:

1. id_manager 
2. name 

Эти две таблицы соединены с помощью клавиши id_manager.

Я хочу, чтобы получить одну таблицу, которая показывает следующие поля:

1. id_manager 
2. managers.name 
3. COUNT(By field id_client) 
And I couldn't make the fourth filed: 
4. COUNT(By field id_client, which have bought something ('client.made_a_deal' is true)) 

Мой код:

USE database_name; 
SELECT 
    managers.id_manager, 
    managers.name, 
    COUNT(client.id_client) AS `all` 
FROM managers 
LEFT OUTER JOIN 
    client 
    ON 
    managers.id_manager = client.id_manager 
GROUP BY managers.name 
; 

Как я должен изменить свой код, чтобы достичь требуемой таблицы?

ответ

1

В MySQL, логические столбцы действительно целые числа с нулевым значением false.

Так что попробуйте эту строку в ЗЕЬЕСТЕ.

SUM(IF client.made_a_deal <> 0, 1, 0)) AS dealmakers, 

Если вы уверены, что каждое значение в столбце made_a_deal либо равен нулю, либо один, это проще пункт будет делать.

SUM(client.made_a_deal) AS dealmakers, 
+0

Круто! Это очень простое и гениальное решение! Благодаря! –