我正在尝试根据他们的“总部”或“父”位置将一些客户分组在一起。
这工作正常,除了我在开发系统时没有预见到的一个缺陷......对于没有“父”(独立业务)的客户,我将 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 和一行用于 CustName#2 但我的问题是没有 parent_id=0 的父记录,并且这些行在使用时被排除在外内部联接。
我尝试过使用 case 语句,但这也不起作用(父母仍然被忽略)
任何帮助将不胜感激。这是我的查询(我的 CASE 基本上是尝试根据 parent_id 从客户表中获取业务名称,当 parent_id = 0 时除外,然后只使用 job_summary 表中列出的客户名称):
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