总公司par_code 为空 名字为company,子公司的par_code 为总公司的company,非子公司par_code为其他,向帆软传公司参数,写出sql查询出总公司 子公司 非子公司的数据,各个子公司显示各个子公司数据,非子公司合计成一条数据
时间: 2024-09-11 18:01:52 浏览: 56
为了根据您给出的情况查询总公司、子公司以及非子公司的数据,我们需要假设有一个表,例如名为`companies`,其中包含公司名称和父公司代码`par_code`两个字段。以下是一个基于这些假设的SQL查询示例:
```sql
SELECT
c1.par_code AS ParentCompanyCode,
c1.company_name AS CompanyName,
COUNT(*) AS NumberOfSubsidiaries,
CASE
WHEN c1.par_code IS NULL THEN '总公司'
WHEN c2.par_code IS NOT NULL THEN '子公司'
ELSE '非子公司'
END AS CompanyType
FROM
companies c1
LEFT JOIN companies c2 ON c1.company_name = c2.par_code
GROUP BY
c1.par_code, c1.company_name
ORDER BY
ParentCompanyCode, CompanyType;
```
在这个查询中,我们使用了左连接(LEFT JOIN)来匹配每个公司和其可能的子公司。我们根据`par_code`是否为空、是否能找到对应的子公司来判断公司类型。对于总公司,`par_code`应该是空的。对于子公司,会在子查询中找到一个匹配的`par_code`。对于非子公司,`par_code`既不为空,也不会在子查询中找到匹配的`par_code`,因此它们将单独统计。
请注意,这个SQL查询的准确性依赖于数据库的具体表结构和字段。如果字段名或者表名有所不同,您需要相应地调整SQL查询。
阅读全文