2017-02-13 19 views
1

私はマンガーとクライアントを持つ2つのテーブルを持っています。 だから、「クライアント」テーブルには、次のフィールドました:追加条件で同じ列を追加するにはどうすればよいですか?

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

そして、「管理者のテーブルには、次のフィールドました。これらの2つのテーブルはid_managerキーによって接続されている

1. id_manager 
2. name 

私は、次のフィールドを示して一つのテーブルを、取得したい:

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では、論理列は実際には0の意味のfalseの整数です。

SELECT句にこの行を入力してください。あなたはmade_a_deal列のすべての値が0または1のいずれかであることを確認している場合

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

は、このシンプルな句が行います。

SUM(client.made_a_deal) AS dealmakers, 
+0

クール!それは非常にシンプルで天才的な解決策です!ありがとう! –

関連する問題