0

我正在尝试根据他们的“总部”或“父”位置将一些客户分组在一起。

这工作正常,除了我在开发系统时没有预见到的一个缺陷......对于没有“父”(独立业务)的客户,我将 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
4

1 回答 1

1

尝试 aLEFT OUTER JOIN而不是INNER JOIN.

on js.parent_id=c.id大概是过滤掉没有父母的行。

于 2010-04-14T07:00:46.077 回答