2016-06-27 3 views
1

これはちょっと説明するのが難しいです。mySQL列 "b"の結果に共通の列 "a"がある場所を選択してください

私はこの列の1つがタイプの列であるこのテーブルを持っています。セールス担当者は、b_idとaction_idを含むレコードを挿入します。私はいくつかの情報を取得し、次のコードで

SELECT entry_type, COUNT(DISTINCT(b_name)) AS '# of prospects', 
SUM(case when entries.out_id = '1' then 1 else 0 end) 'No Interest', 
SUM(case when entries.out_id = '2' then 1 else 0 end) 'Needs Follow Up', 
SUM(case when entries.out_id = '3' then 1 else 0 end) 'Appointment Booked' 
FROM entries 
LEFT JOIN outcomes on outcomes.out_id = entries.out_id 
LEFT JOIN type on type.type_id = entries.type_id 
LEFT JOIN business on entries.b_id = business.b_id 
LEFT JOIN users on users.user_id = entries.user_id 
WHERE b_name LIKE 'July%' AND (entries.type_id = 1 OR entries.type_id = 2 OR entries.type_id = 14) 
GROUP BY entry_type; 

結果は事があり、2つの可能な初期段階の措置がありますが、「コール」または「ウォーク以下

ACTION    # OF PROSPECTS NO INTEREST NEEDS FOLLOW UP APP. BOOKED 
Call    4    1   2    1 
Follow Up Contact 2    0   0    2 
Walk In    1    1   0    0 

です" 「フォローアップ連絡先」は、必要に応じて、最初の通話または徒歩後に使用されます。ご覧のとおり、このフォローアップから2つの予定が予約されています。ここに質問があります。このフォローアップ連絡先が最初の通話または最初の通話に関連しているかどうかをどのように知ることができますか?

それぞれのタイプのアプローチ(コールまたはウォークイン)から発生したアポイントの数を指定するレポートを生成できる必要があります。事前

答えて

0

おかげで自己結合を使用しては:

SELECT e1.type AS original_type, COUNT(e2.b_id) AS count 
FROM entries AS e1 
LEFT JOIN entries AS e2 ON e2.b_id = e1.b_id AND e2.entry_type = 'Follow Up Contact' 
WHERE e1.entry_type IN ('Call', 'Walk In') 
GROUP BY original_type 
+0

おかげで多く、それが今で動作するようになりました。 – Lberteh

関連する問題