「本社」または「親」の場所に基づいて、多数の顧客をグループ化しようとしています。
これは、システムを開発していたときに予見できなかった欠陥を除いては正常に機能します...「親」(スタンドアロンビジネス)を持たない顧客の場合、parent_id をデフォルトで 0 に設定しました。したがって、私のデータは次のようになります。これ:
id parent_id customer
1 0 CustName#1
2 4 CustName#2 - Melbourne
3 4 CustName#2 - Sydney
4 0 CustName#2 (Head Office)
私がやりたいことは、結果をグループ化して、CustName#1 に 1 つの行と CustName#2 に 1 つの行を持つようにすることですが、私の問題は、parent_id=0 の親レコードがなく、これらの行が内部結合。
ケースステートメントを使用してみましたが、どちらも機能していません (親はまだ無視されています)
どんな助けでも大歓迎です。これが私のクエリです(私のケースは基本的に、parent_id = 0の場合を除いて、parent_idに基づいてcustomerテーブルからbusiness_nameを取得しようとしています。次に、job_summaryテーブルにリストされているcustomer_nameを使用します):
SELECT
js.month_of_year,
(CASE js.parent_id WHEN 0 THEN js.customer_name ELSE c.business_name END) as customer,
SUM(js.jobs),
SUM(js.total_cost),
sum(js.total_sell)
FROM JOB_SUMMARY js INNER JOIN
customer c on js.parent_id=c.id
group by
js.month_of_year,
(CASE c.parent_id WHEN 0 THEN js.customer_name ELSE c.business_name END)
ORDER BY `customer` ASC